WEBrickにエスケープシーケンス挿入の脆弱性

Posted by Yugui on 10 Jan 2010

Ruby添付ライブラリの一部であるWEBrickに脆弱性が発見されました。 WEBrickは攻撃者が悪意のあるエスケープシーケンスをログに挿入することを許してしまうので、ログを閲覧する際に端末エミュレータで危険な制御文字を実行されることがあります。

この問題は既に修正済みです。直ちにすべてのアクティブなブランチのリリースが行われます。 WEBrickプロセスを更新するまでは、WEBrickのログを閲覧しないことをお奨めします。

詳細

端末エスケープシーケンスは端末とその内部のプロセスとの間の様々なやりとりに用いられます。 ここで、ネットワーク入力のような信頼されていない情報源からシーケンスが発行されることは想定されていません。そのため外部の攻撃者がエスケープシーケンスをWEBrickのログに挿入しそのログを閲覧したとすると、攻撃者は端末エミュレータを攻撃する目的に利用することができます[1]。

WEBrickはそのようなエスケープシーケンスをフィルタできていませんでした。

例:

% xterm -e ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port=>8080).start' &
% wget http://localhost:8080/%1b%5d%32%3b%6f%77%6e%65%64%07%0a

xtermのウィンドウタイトルを見てください。

影響するバージョン

  • Ruby 1.8.6 patchlevel 383およびそれ以前のすべてのバージョン
  • Ruby 1.8.7 patchlevel 248およびそれ以前のすべてのバージョン
  • Ruby 1.8の開発版(1.8.8dev)
  • Ruby 1.9.1 patchlevel 376およびそれ以前のすべてのバージョン
  • Ruby 1.9の開発版 (1.9.2dev)

解決法

クレジット

Giovanni "evilaliv3" Pellerano, Alessandro "jekil" Tanasi, および Francesco "ascii" Ongaroがこの脆弱性を発見しました。

最近のニュース

Ruby 4.0.0 リリース

Ruby 4.0.0 が公開されました。 Ruby 4.0 には “Ruby Box”、”ZJIT” ほか多数の改善が含まれています。

Posted by naruse on 25 Dec 2025

サイトのアイデンティティの再設計

サイトの包括的なデザインのアップデートを発表できることを嬉しく思います。今回の更新ではTaeko Akatsukaさんにデザインを担当していただきました。

Posted by Hiroshi SHIBATA on 22 Dec 2025

Ruby 4.0.0 preview2 リリース

Ruby 4.0.0-preview2 が公開されました。Ruby 4.0では、Unicodeバージョンの17.0.0へのアップデートなど様々な改善が行われています。

Posted by naruse on 17 Nov 2025

もっと読む...