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 日