CVE-2019-15845:File.fnmatch 和 File.fnmatch? 的 NUL 注入漏洞

发现 Ruby 内建方法(File.fnmatchFile.fnmatch?)存在 NUL 注入漏洞。攻击者如果控制了路径模式参数,就可以利用此漏洞,使得路径匹配通过,尽管程序作者的意图并非如此。CVE-2019-15845 已被分配给此漏洞。

详情

内建方法 File.fnmatch 及其别名 File.fnmatch? 接受路径模式作为它们的第一个参数。当模式包含 NUL 字符(\0)时,这些方法会认为路径模式在 NUL 字节之前立即结束。因此,如果一个脚本使用外部输入作为模式参数,攻击者可以使其错误地匹配第二个参数所表示的路径名。

所有运行受影响版本的用户应尽快升级。

受影响版本

  • 所有 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
  • 早于 master commit a0a2640b398cffd351f87d3f6243103add66575b 的版本

致谢

感谢 ooooooo_q 发现了这个问题。

历史

  • 最初发布于 2019-10-01 11:00:00 (UTC)