CVE-2020-10663: JSON 存在任意创建不安全对象风险 (额外修复)

Ruby 內建的 json gem 存在任意创建不安全对象风险,此风险的 CVE 识别号为 CVE-2020-10663。我们强烈建议您升级 json gem。

风险细节

json gem(包含 Ruby 內建的版本)在解析 JSON 文件时,系統可以被置入任意的对象。

此风险与 CVE-2013-0269 是同样的问题。之前的补丁不完整,只修复了 JSON.parse(user_input),沒修复到其他解析的方法像是:JSON(user_input)JSON.parse(user_input, nil)

了解更多细节参见 CVE-2013-0269。注意本风险本可用來建立大量无法被 GC 回收的 Symbol 对象,但像是这种类型的攻击已经不再有效,因为 Ruby 已经可以垃圾回收 Symbol 对象了。但根据程序代码的不同,创建任何对象仍可能存在严重的安全风险。

请用 gem update json 命令更新 json gem 至 2.3.0 以上版本。用 bundler 请加入 gem "json", ">= 2.3.0" 这行到 Gemfile

受影响版本

  • JSON gem 2.2.0 及先前版本

致谢

感谢 Jeremy Evans 报告此问题。

历史

  • 最初发布于 2020-03-19 13:00:00 (UTC)