CVE-2020-10933:套接字库中的堆暴露漏洞

在套接字库中发现了一个堆暴露漏洞。此漏洞已分配 CVE 标识符 CVE-2020-10933。我们强烈建议升级 Ruby。

详情

当使用大小和缓冲区参数调用 BasicSocket#recv_nonblockBasicSocket#read_nonblock 时,它们最初会将缓冲区调整到指定的大小。在操作会阻塞的情况下,它们会在不复制任何数据的情况下返回。因此,缓冲区字符串现在将包含来自堆的任意数据。这可能会暴露解释器中可能敏感的数据。

此问题仅在 Linux 上可利用。此问题自 Ruby 2.5.0 起就存在;2.4 系列不受影响。

受影响版本

  • Ruby 2.5 系列:2.5.7 及更早版本
  • Ruby 2.6 系列:2.6.5 及更早版本
  • Ruby 2.7 系列:2.7.0
  • 早于 master 版本 61b7f86248bd121be2e83768be71ef289e8e5b90

鸣谢

感谢 Samuel Williams 发现了这个问题。

历史

  • 最初发布于 2020-03-31 12:00:00 (UTC)