CVE-2020-10933:socket 函数库存在堆内存泄漏风险

mame 发表于 2020-03-31
翻译: Alex S

socket 函数库存在堆内存泄漏风险。此风险的 CVE 识别号为 CVE-2020-10933。我们强烈建议您升级 Ruby。

风险细节

当调用 BasicSocket#recv_nonblockBasicSocket#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

更多新闻...