YAML の URI エスケープ処理におけるヒープオーバーフローについて (CVE-2014-2525)
Posted by hone and zzak on 29 Mar 2014
Translated by makimoto
Ruby の YAML データにおける URI エスケープ処理にオーバーフロー問題があります。 この脆弱性は CVE 識別番号 CVE-2014-2525 に割り当てられています。
詳細
タグ付き YAML の中で文字列がパースされる際に、特殊な文字列がヒープオーバーフローを引き起こし、任意のコードが実行される可能性があります。
例:
YAML.load <code_from_unknown_source>影響を受けるバージョン
Ruby 1.9.3-p0 以上にはデフォルトの YAML パーサとして psych が含まれています。 0.1.5 以下のバージョンの libyaml にリンクされているすべてのバージョンの psych が影響を受けます。
また、以下の Ruby にはこの問題のあるバージョンの libyaml が同梱されています。
- Ruby 2.0.0-p451 以前の Ruby 2.0.0
- Ruby 2.1.1 以前の Ruby 2.1
以下の方法で実行時に使用される libyaml のバージョンを確認できます:
$ ruby -rpsych -e 'p Psych.libyaml_version'
[0, 1, 5]解決方法
libyaml をシステムにインストールしているユーザは libyaml を 0.1.6 にアップデートすることが推奨されます。
Ruby を再コンパイルする際にアップデートした新しい libyaml を指定してください:
$ ./configure --with-yaml-dir=/path/to/libyamlシステムに libyaml がインストールされていないユーザは、Ruby 同梱の libyaml を使用しているので、 libyaml 0.1.6 を提供している psych 2.0.5 にアップデートすることが推奨されます:
$ gem install psychまた、Ruby を 2.0.0-p481、Ruby 2.1.2 またはより新しいバージョンにアップデートすることでも、同梱の libyaml が更新されます。
更新履歴
- 2014-03-29 10:49:25(JST) 初版
- 2014-03-29 18:45:00(JST) 2版
- 2014-05-09 12:00:00(JST) 3版
最近のニュース
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