CVE-2020-10663: JSON における安全でないオブジェクトの生成の脆弱性について(追加の修正)
Posted by mame on 19 Mar 2020
RubyにバンドルされているJSON gemに、安全でないオブジェクトの生成を可能とする脆弱性が報告されました。 この脆弱性は CVE-2020-10663 として登録されています。 ユーザのみなさんにはJSON gemを更新することを強くおすすめします。
詳細
対象のシステムにJSONドキュメントをパースさせる際に、JSON gem(Rubyにバンドルされているものを含む)に対して任意のオブジェクトを生成させることができます。
これは CVE-2013-0269 と同じ問題です。
当時の修正は不完全で、JSON.parse(user_input)は対処していましたが、JSON(user_input)やJSON.parse(user_input, nil)などといった他のスタイルのJSONパースが対処されていませんでした。
攻撃について詳しくは CVE-2013-0269 のアナウンスをご参照ください。 なお、当時はこの問題によってガベージコレクトできないSymbolオブジェクトを大量に生成することでサービス不能攻撃(Denial of Service)を引き起こすことができましたが、今はSymbolオブジェクトはガベージコレクト可能なのでこのタイプの攻撃は成立しません。 しかしながら、任意オブジェクトを生成することはアプリケーションコード次第で致命的な結果を引き起こす可能性があります。
json gemを2.3.0かそれ以降にしてください。gem update jsonでアップデートできます。もしbundlerを使っている場合は、Gemfileにgem "json", ">= 2.3.0"を追加してください。
影響を受けるバージョン
- JSON gem 2.2.0 およびそれ以前のバージョン
クレジット
この問題を発見したJeremy Evansに感謝します。
更新履歴
- 2020-03-19 22: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 preview3 リリース
Ruby 4.0.0-preview3 が公開されました。
Posted by naruse on 18 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