发布者:usa,发布于 2014 年 11 月 13 日
像“REXML 中的实体扩展 DoS 漏洞(XML 炸弹,CVE-2013-1821)” 和 “CVE-2014-8080:REXML 中的参数实体扩展 DoS 漏洞”一样,不受限制的实体扩展可能导致 REXML 中出现 DoS 漏洞。此漏洞已分配 CVE 标识符 CVE-2014-8090。我们强烈建议升级 Ruby。
详情
这是对 CVE-2013-1821 和 CVE-2014-8080 的额外修复。之前的补丁修复了多个位置的递归扩展和创建的字符串的总大小。但是,它们没有考虑到之前用于实体扩展的限制。使用空字符串进行递归扩展可能会导致 100% 的 CPU 使用率。当从 XML 文档读取文本节点时,REXML 解析器可能会被强制分配非常大的字符串对象,这会消耗机器上的所有内存,从而导致拒绝服务。
受影响的代码看起来像这样
所有运行受影响版本的用户应立即升级或使用其中一种解决方法。
受影响的版本
- 所有 Ruby 1.9 版本,低于 Ruby 1.9.3 patchlevel 551
- 所有 Ruby 2.0 版本,低于 Ruby 2.0.0 patchlevel 598
- 所有 Ruby 2.1 版本,低于 Ruby 2.1.5
- 低于 trunk 修订版 48402
解决方法
如果无法升级 Ruby,请使用此猴子补丁作为解决方法
鸣谢
感谢 Tomas Hoger 报告此问题。
历史
- 最初发布于 2014-11-13 12:00:00 UTC