CVE-2018-8778: String#unpack における範囲外読み込みの脆弱性について

Posted by usa on 28 Mar 2018

Ruby の組み込みクラス String のメソッド String#unpack において、攻撃者により配列の範囲外へのアクセスが可能となりうる脆弱性が発見されました。 この脆弱性は、CVE-2018-8778 として登録されています。

詳細

組み込みクラス String のメソッド String#unpack では、引数でフォーマット指定子を与えますが、位置指定子 @ によって指定した位置のデータを読み込むことができます。この際、位置指定として巨大な整数を与えた場合、内部処理的に負数とみなされて、文字列の範囲外のデータにアクセスできてしまっていました。 このため、外部の入力を String#unpack の引数として指定可能な場合、攻撃者によってヒープ上の領域が読み込み可能となっていました。

この問題の影響を受けるバージョンの Ruby のユーザーは、速やかに問題の修正されたバージョンに更新してください。

影響を受けるバージョン

  • Ruby 2.2.9 以前の全ての Ruby 2.2 系列
  • Ruby 2.3.6 以前の全ての Ruby 2.3 系列
  • Ruby 2.4.3 以前の全ての Ruby 2.4 系列
  • Ruby 2.5.0
  • Ruby 2.6.0-preview1
  • revision 62992 より前の開発版

クレジット

この脆弱性情報は、aerodudrizzt 氏によって報告されました。

更新履歴

  • 2018-03-28 23:00:00 (JST) 初版

最近のニュース

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

もっと読む...