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

我们发布了包含缓存过读漏洞补丁的 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)