diff --git a/zh_cn/news/_posts/2026-03-05-buffer-overflow-zlib-cve-2026-27820.md b/zh_cn/news/_posts/2026-03-05-buffer-overflow-zlib-cve-2026-27820.md new file mode 100644 index 0000000000..0c4e405229 --- /dev/null +++ b/zh_cn/news/_posts/2026-03-05-buffer-overflow-zlib-cve-2026-27820.md @@ -0,0 +1,38 @@ +--- +layout: news_post +title: "CVE-2026-27820: Zlib::GzipReader 中的缓存区溢出漏洞" +author: "hsbt" +translator: "GAO Jun" +date: 2026-03-05 00:00:00 +0000 +tags: security +lang: zh_cn +--- + +`Zlib::GzipReader` 中存在一个缓存区溢出漏洞。此漏洞的 CVE 编号为 [CVE-2026-27820](https://www.cve.org/CVERecord?id=CVE-2026-27820)。 +我们建议您更新 `zlib` gem。 + +### 详情 + +`zstream_buffer_ungets` 函数会在生成的输出前加上调用者提供的字节,但没有确保对应的 Ruby 字符串的长度是否足够。 +当缓冲区长度超过字符串容量时,将导致内存损坏。 + +### 建议操作 + +我们建议将 `zlib` gem 更新到 3.2.3 或后续版本。为了确保与较旧 Ruby 系列绑定版本的兼容性,您可以使用下面的方法进行更新: + +* Ruby 3.2:更新到 `zlib` 3.0.1 +* Ruby 3.3:更新到 `zlib` 3.1.2 + +您可以通过 `gem update zlib` 进行更新。如果您使用 bundler,请将 `gem "zlib", ">= 3.2.3"` 添加到 Gemfile 中。 + +### 受影响版本 + +`zlib` gem 3.2.2 或之前发布的版本 + +### 致谢 + +感谢 [calysteon](https://hackerone.com/calysteon) 汇报此问题。同时感谢 [nobu](https://github.com/nobu) 制作了补丁。 + +## 历史 + +* 最初发布于 2026-03-05 09:00:00 (UTC)