CVE-2019-16255:Shell#[] 和 Shell#test 的代码注入漏洞

在标准库 (lib/shell.rb) 中发现了 Shell#[] 和 Shell#test 的代码注入漏洞。该漏洞已被分配 CVE 标识符 CVE-2019-16255

详情

如果第一个参数(又名“命令”参数)是不受信任的数据,lib/shell.rb 中定义的 Shell#[] 及其别名 Shell#test 允许代码注入。攻击者可以利用这一点来调用任意 Ruby 方法。

请注意,通常情况下,将不受信任的数据传递给 Shell 的方法是危险的。用户绝不能这样做。但是,我们将此特定情况视为漏洞,因为 Shell#[] 和 Shell#test 的目的是文件测试。

所有运行受影响版本的用户都应立即升级。

受影响的版本

  • 所有 Ruby 2.3 或更早版本
  • Ruby 2.4 系列:Ruby 2.4.7 或更早版本
  • Ruby 2.5 系列:Ruby 2.5.6 或更早版本
  • Ruby 2.6 系列:Ruby 2.6.4 或更早版本
  • Ruby 2.7.0-preview1

致谢

感谢 ooooooo_q 发现了这个问题。

历史

  • 最初发布于 2019-10-01 11:00:00 (UTC)
  • 在 2019-10-05 12:00:00 (UTC) 修复了拼写小问题