CVE-2021-41816:CGI.escape_html 中的缓冲区溢出

在 CGI.escape_html 中发现了一个缓冲区溢出漏洞。此漏洞已分配 CVE 标识符 CVE-2021-41816。我们强烈建议升级 Ruby。

详细信息

当您在 long 类型占用 4 个字节的平台上(通常是 Windows)将非常大的字符串(> 700 MB)传递给 CGI.escape_html 时,会导致缓冲区溢出的安全漏洞。

请将 cgi gem 更新到 0.3.1、0.2.1 和 0.1.1 或更高版本。您可以使用 gem update cgi 来更新它。如果您使用 bundler,请将 gem "cgi", ">= 0.3.1" 添加到您的 Gemfile 中。或者,请将 Ruby 更新到 2.7.5 或 3.0.3。

此问题自 Ruby 2.7 引入,因此与 Ruby 2.6 捆绑的 cgi 版本不受此漏洞影响。

受影响的版本

  • cgi gem 0.1.0 或更早版本(与 Ruby 2.7 系列捆绑的版本,在 Ruby 2.7.5 之前)
  • cgi gem 0.2.0 或更早版本(与 Ruby 3.0 系列捆绑的版本,在 Ruby 3.0.3 之前)
  • cgi gem 0.3.0 或更早版本

鸣谢

感谢 chamal 发现此问题。

历史记录

  • 最初发布于 2021-11-24 12:00:00 (UTC)