CVE-2018-8780:Dir 中被污染的 NUL 字节导致的意外目录遍历

Dir 中的某些方法存在意外的目录遍历。此漏洞已被分配 CVE 标识符 CVE-2018-8780

详情

Dir.openDir.newDir.entriesDir.empty? 接受目标目录的路径作为其参数。如果参数包含 NUL (\0) 字节,这些方法会认为路径在 NUL 字节之前已完成。因此,如果脚本接受外部输入作为这些方法的参数,攻击者可以进行意外的目录遍历。

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

受影响的版本

  • Ruby 2.2 系列:2.2.9 及更早版本
  • Ruby 2.3 系列:2.3.6 及更早版本
  • Ruby 2.4 系列:2.4.3 及更早版本
  • Ruby 2.5 系列:2.5.0 及更早版本
  • Ruby 2.6 系列:2.6.0-preview1
  • trunk 修订版 r62989 之前

致谢

感谢 ooooooo_q 报告此问题。

历史记录

  • 最初发布于 2018-03-28 14:00:00 (UTC)