CVE-2020-10933:socket 函数库存在堆内存泄漏风险
由 mame 发表于 2020-03-31
翻译: Alex S
socket 函数库存在堆内存泄漏风险。此风险的 CVE 识别号为 CVE-2020-10933。我们强烈建议您升级 Ruby。
风险细节
当调用 BasicSocket#recv_nonblock 和 BasicSocket#read_nonblock 方法,传入 size 与 buffer 参数时,buffer 会被调整为制定大小。当执行被阻塞,他們会不拷贝任何数据立即返回。因此,buffer 字符串可以带有堆内存上的任何数据。这可能导致解释器泄漏敏感数据。
在 Linux 上可以重现这个问题。从 Ruby 2.5.0 开始存在此风险,Ruby 2.4 系列版本没有问题。
受影响版本
- Ruby 2.5 系列:Ruby 2.5.7 及更早版本
- Ruby 2.6 系列:Ruby 2.6.5 及更早版本
- Ruby 2.7 系列:2.7.0
- master 早于 61b7f86248bd121be2e83768be71ef289e8e5b90 的提交
致谢
感谢 Samuel Williams 报告此问题。
历史
- 最初发布于 2020-03-31 12:00:00 (UTC)
最新消息
Ruby 4.0.0 已发布
我们很高兴地宣布 Ruby 4.0.0 已发布。 Ruby 4.0 引入了 Ruby::Box 和 “ZJIT”,以及若干改进。
由 naruse 发表于 2025-12-25
全新的 Ruby 文档界面
继 重新设计 ruby-lang.org之后, 我们还有更多消息来庆祝 Ruby 诞生 30 周年:docs.ruby-lang.org 采用了全新的、RDoc 的 Aliki 默认主题。
由 Stan Lo 发表于 2025-12-23
重新设计我们的网站标识
我们激动地宣布网站已经全面改版。此次更新的设计方案由 Taeko Akatsuka (赤塚妙子) 创作。
由 Hiroshi SHIBATA 发表于 2025-12-22
Ruby 4.0.0 preview3 已发布
我们很高兴地宣布 Ruby 4.0.0-preview3 已发布。 Ruby 4.0 引入了 Ruby::Box 和 “ZJIT”,以及若干改进。
由 naruse 发表于 2025-12-18