CVE-2018-8779: UNIXServer 与 UNIXSocket 中污染的 NUL 字节可创建意外的 Socket
由 usa 发表于 2018-03-28
翻译: Delton Ding
Ruby 自带的套接字库中 UNIXServer.open 方法存在一个通过污染的 NUL 字节可创建意外的 Socket 的缺陷。同时,UNIXSocket.open 方法也存在一个意外访问套接字的缺陷。此缺陷已被分配 CVE 标识符 CVE-2018-8779。
细节
UNIXServer.open 将套接字的路径作为其创建套接字的第一个参数。当参数中包含 NUL (\0) 字节时,这些方法会在 NUL 字节前停止解析路径。因此,当使用这些方法时接受外部输入时,攻击者可以利用此缺陷访问意外的套接字。同样地,UNIXSocket.open 接受参数创建套接字时和 UNIXServer.open 一样也没有检查 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
- SVN trunk 早于 r62991 的所有版本
鸣谢
感谢 ooooooo_q 报告了此问题。
历史
- 最早于 2018-03-28 14:00:00 (UTC) 发布
最新消息
Ruby 3.3.12 已发布
Ruby 3.3.12 已发布。
由 hsbt 发表于 2026-07-16
Ruby 4.0.6 已发布
Ruby 4.0.6 已发布。
由 k0kubun 发表于 2026-07-14
Ruby 3.4.10 已发布
Ruby 3.4.10 已发布。
由 nagachika 发表于 2026-06-30
Ruby 4.0.5 已发布
Ruby 4.0.5 已发布。
由 k0kubun 发表于 2026-05-20