CVE-2018-8779:UNIXServer 和 UNIXSocket 中因受污染的 NUL 字节导致意外的套接字创建

Ruby 捆绑的套接字库中的 UNIXServer.open 方法存在意外的套接字创建漏洞。并且 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
  • 早于 trunk 修订版 r62991

鸣谢

感谢 ooooooo_q 报告此问题。

历史

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