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)
解決法
- 1.8.6, 1.8.7, および1.9.1のリリースは続報をお待ちください。
- 更新 1.8.7 pl. 249がリリースされました。 1.8.7利用者には更新を推奨します。
- Update 1.9.1 pl. 378がリリースされました。 1.9.1利用者には更新を推奨します。
- 開発版については、各ブランチの最新リビジョンに更新してください。
クレジット
Giovanni "evilaliv3" Pellerano, Alessandro "jekil" Tanasi, および Francesco "ascii" Ongaroがこの脆弱性を発見しました。
最近のニュース
Ruby 4.0.2 リリース
Ruby 4.0.2 がリリースされました。
Posted by k0kubun on 16 Mar 2026
Ruby 3.4.9 リリース
Ruby 3.4.9 がリリースされました。
Posted by nagachika on 11 Mar 2026
関西Ruby会議09の参加登録が開始されました
日本Rubyの会が後援する、地域Ruby会議(RegionalRubyKaigi)の1つである関西Ruby会議09の参加登録が開始されました。
Posted by Yudai Takada(@ydah) on 3 Mar 2026
Ruby 4.0.0 リリース
Ruby 4.0.0 が公開されました。 Ruby 4.0 には “Ruby Box”、”ZJIT” ほか多数の改善が含まれています。
Posted by naruse on 25 Dec 2025