CVE-2018-6914: tempfile 和 tmpdir 库中意外创建文件和目录的缺陷
由 usa 发表于 2018-03-28
翻译: Delton Ding
Ruby 自带的 tmpdir 库中存在一个创建意外目录的缺陷。此外 tempfile 库也存在创建意外文件的缺陷,因为其内部依赖了 tmpdir。此缺陷已被分配 CVE 标识符 CVE-2018-6914。
细节
tmpdir 库中的 Dir.mktmpdir 方法接受目录的前后缀作为其创建目录的第一个参数。前缀可以包括相对目录符号,例如:"../",因此,此方法可以被用于重定向至任意目录。因此,当脚本接受外部输入作为其前缀参数,且目标路径或 Ruby 进程没有被合适的权限保护时,攻击者可以利用此缺陷在任意目录创建文件。
所有使用受影响版本的用户应立即升级。
受影响版本
- 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
- SVN trunk 早于 62990 的所有版本
鸣谢
感谢 ooooooo_q 报告了此问题。
历史
- 最早于 2018-03-28 14:00:00 (UTC) 发布
最新消息
Ruby 4.0.5 已发布
Ruby 4.0.5 已发布。
由 k0kubun 发表于 2026-05-20
Ruby 4.0.4 已发布
Ruby 4.0.4 已发布。
由 k0kubun 发表于 2026-05-11
Ruby 4.0.3 已发布
Ruby 4.0.3 已发布。
由 k0kubun 发表于 2026-04-21
Ruby 3.2.11 已发布
Ruby 3.2.11 已发布。 此版本包括了 处理 CVE-2026-27820 的 zlib gem 更新。
由 hsbt 发表于 2026-03-27