ArchLinux: 201411-16: ruby: denial of service
Summary
CPU exhaustion can occur as a result of recursive expansion with an empty string. When reading text nodes from an XML document, the REXML parser can be coerced into allocating extremely large string objects which can consume all of the memory on a machine, causing a denial of service.
Resolution
Upgrade to 2.1.5-1.
# pacman -Syu "ruby>=2.1.5-1"
The problem has been fixed upstream in version 2.1.5.
References
https://www.ruby-lang.org/en/news/2014/11/13/rexml-dos-cve-2014-8090/ https://access.redhat.com/security/cve/CVE-2014-8090
Workaround
If you cannot upgrade Ruby, use this monkey patch as a workaround:
class REXML::Document
def document
self
end
end