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 中的 ungetbyte 和 ungetc 方法能够读取超过字符串结尾的内容,如果后续调用 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 3.4.11 已发布

Ruby 3.4.1 1已发布。 此次定期发布包含了一些补丁。

由 nagachika 发表于 2026-09-23

更多新闻...