由 usa 發表於 2014-11-13
翻譯: Juanito Fatas
不受限制的實體擴張可導致 REXML 的風險發生,像是這兩篇文章所描述的漏洞:“Entity expansion DoS vulnerability in REXML (XML bomb, CVE-2013-1821)”以及“CVE-2014-8080:XML 擴張的阻斷攻擊”。
這個風險的 CVE 識別號已經被指派為 CVE-2014-8090。強烈建議您儘速升級 Ruby。
細節
這是 CVE-2013-1821 和 CVE-2014-8080 的額外修正。先前的補丁修正了幾處的遞迴擴展並限制了字串建立的總長度。但沒有針對實體所進行限制。空字串的遞迴擴張可能把 CPU 整個吃滿。在從 XML 文件讀取文字節點時,REXML 解析器可以轉成佔用極大空間的字串物件,將機器上的記憶體用盡,進而導致阻斷攻擊。
受影響的程式碼看起來像是:
所有運行受影響版本的使用者應該儘速升級或採用下面的因應措施。
受影響版本
- 所有 Ruby 1.9 patchlevel 在 551 以前的版本
- 所有 Ruby 2.0 patchlevel 在 598 以前的版本
- 所有 Ruby 2.1 在 2.1.5 以前的版本
- 主幹 revision 48402 以前的版本
因應措施
若無法升級 Ruby,請使用以下的替代方案:
致謝
感謝 Tomas Hoger 回報這個問題。
History
- 2014-11-13 12:00:00 UTC 初版