由 mame 发布于 2020 年 3 月 31 日
在套接字库中发现了一个堆暴露漏洞。此漏洞已分配 CVE 标识符 CVE-2020-10933。我们强烈建议升级 Ruby。
详情
当使用大小和缓冲区参数调用 BasicSocket#recv_nonblock
和 BasicSocket#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)