Ruby 1.9 的哈希洪水 DoS 漏洞 (CVE-2012-5371)

usa 发布于 2012 年 11 月 9 日

报告称 Ruby 1.9 系列使用的哈希函数存在哈希洪水 DoS 攻击。此漏洞与 Ruby 1.8.7 的 CVE-2011-4815 不同。建议所有 Ruby 1.9 用户升级到 ruby-1.9.3 patchlevel 327 以获取此安全修复。

影响

精心构造的字符串序列可以对解析该序列以使用字符串作为键创建Hash对象的服务进行拒绝服务攻击。例如,此漏洞会影响解析来自不受信任实体发送的JSON数据的Web应用程序。

详情

此漏洞类似于Ruby 1.8.7的CVE-2011-4815。Ruby 1.9版本使用了修改过的MurmurHash函数,但据报道,存在一种方法可以创建哈希值相互冲突的字符串序列。此修复程序将String对象的哈希函数从MurmurHash更改为SipHash 2-4

解决方案

如果您正在使用Ruby 1.9版本,请更新至ruby-1.9.3 patchlevel 327。如果您正在使用ruby 2.0.0 preview1或ruby trunk,请更新至trunk revision 37575或更高版本。此外,所有接受来自不受信任实体输入数据进行解析的Ruby应用程序都应将输入数据的大小限制在合理范围内。我们不确定未来是否能在编程语言层面提供针对此类漏洞的保护。

受影响的版本

  • Ruby 1.9.3 patchlevel 327之前的所有Ruby 1.9版本
  • Trunk revision 37575之前的所有Ruby 2.0版本(包括2.0.0 preview1)

致谢

此漏洞是由SipHash的设计者之一Jean-Philippe Aumasson报告的。此修复程序的原始SipHash实现由Ruby提交者之一Martin Boßlet提供。

更新

  • 2012-11-21 22:16:00 修正了拼写错误
  • 最初发布于 2012-11-10 04:23:00

近期新闻

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 日

更多新闻...