CVE-2024-27280: StringIO 中的缓存过读漏洞

hsbt 发表于 2024-03-21
翻译: GAO Jun

我们发布了包含缓存过读漏洞补丁的 StringIO gem 版本 3.0.1.1 和 3.0.1.2。 此漏洞的 CVE 编号为 CVE-2024-27280.

详情

在 StringIO 3.0.1 中发现了一个问题,在 Ruby 3.0.x 中影响至 3.0.6,在 3.1.x 中影响至 3.1.4。

StringIO 中的 ungetbyteungetc 方法能够读取超过字符串结尾的内容,如果后续调用 StringIO.gets 能返回内存数据。

此漏洞不会影响 StringIO 3.0.3 及之后版本,不会影响 Ruby 3.2.x 及之后版本。

建议操作

我们建议将 StringIO gem 更新到 3.0.3 或后续版本。 为确保与旧版 Ruby 中的绑定版本兼容,您可以按照下面的方式进行更新:

  • Ruby 3.0:更新 stringio 至 3.0.1.1
  • Ruby 3.1:更新 stringio 至 3.0.1.2

注意:StringIO 3.0.1.2 不仅包含了本问题的补丁,也包含了 [Bug #19389] 的补丁。

您可以通过 gem update stringio 进行更新。如果您使用 bundler,请在您的 Gemfile 中增加 gem "stringio", ">= 3.0.1.2"

受影响版本

  • Ruby 3.0.6 或更低版本
  • Ruby 3.1.4 或更低版本
  • StringIO gem 3.0.2 或更低版本

致谢

感谢 david_h1 发现此问题。

历史

  • 最初发布于 2024-03-21 4:00:00 (UTC)

最新消息

全新的 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

更多新闻...