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,请将 gem "stringio", ">= 3.0.1.2" 添加到您的 Gemfile

受影响的版本

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

鸣谢

感谢 david_h1 发现了这个问题。

历史

  • 于 2024-04-11 12:50:00 (UTC) 修复了受影响的 StringIO 版本 (3.0.2 -> 3.0.1)
  • 最初发布于 2024-03-21 4:00:00 (UTC)