CVE-2024-27280: StringIO 中的缓冲区溢出读取漏洞
由 hsbt 于 2024 年 3 月 21 日发布
我们已发布 StringIO gem 版本 3.0.1.1 和 3.0.1.2,这些版本包含对缓冲区溢出漏洞的安全修复。该漏洞已被分配 CVE 标识符 CVE-2024-27280。
详情
在 Ruby 3.0.x 至 3.0.6 和 3.1.x 至 3.1.4 中分发的 StringIO 3.0.1 中发现了一个问题。
StringIO 上的 ungetbyte 和 ungetc 方法可能会读取超出字符串末尾,后续调用 StringIO.gets 可能会返回内存中的值。
StringIO 3.0.3 及更高版本,以及 Ruby 3.2.x 及更高版本不受此漏洞影响。
建议操作
我们建议将 StringIO gem 更新到 3.0.3 或更高版本。为了确保与旧版 Ruby 中捆绑的版本兼容,您可以改为执行以下更新:
- 对于 Ruby 3.0 用户:更新到
stringio3.0.1.1 - 对于 Ruby 3.1 用户:更新到
stringio3.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)
近期新闻
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 采用了 Aliki——RDoc 的新默认主题,焕然一新。
由 Stan Lo 发布于 2025 年 12 月 23 日
重新设计我们的网站标识
我们很高兴地宣布对我们的网站进行全面重新设计。此次更新的设计由 Akatsuka Taeko 创作。
由 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 日