REXML is an XML toolkit for Ruby. The REXML gem before 3.3.6 has a DoS vulnerability when it parses an XML that has many deep elements that…
REXML is an XML toolkit for Ruby. The REXML gem before 3.3.6 has a DoS vulnerability when it parses an XML that has many deep elements that have same local name attributes. If you need to parse untrusted XMLs with tree parser API like REXML::Document.new, you may be impacted to this vulnerability. If you use other parser APIs such as stream parser API and SAX2 parser API, this vulnerability is not affected. The REXML gem 3.3.6 or later include the patch to fix the vulnerability.
The product uses XML documents and allows their structure to be defined with a Document Type Definition (DTD), but it does not properly control the number of recursive definitions of entities.
https://cwe.mitre.org/data/definitions/776.html →Open in CWE collection →An adversary submits data to a target application which contains nested exponential data expansion to produce excessively large output. Many data format languages allow the definition of macro-like structures that can be used to simplify the creation of complex structures. However, this capability can be abused to create excessive demands on a processor's CPU and memory. A small number of nested expansions can result in an exponential growth in demands on memory.
https://capec.mitre.org/data/definitions/197.html →Open in CAPEC collection →| Product | Vendor | Status |
|---|---|---|
| Tracked | ||
| pcs | Tracked | |
| pcs | Tracked | |
| pcs | Tracked | |
| pcs | Tracked | |
| ruby | Tracked | |
| ruby | Tracked | |
| ruby2.7 | Tracked | |
| ruby2.7 | Tracked | |
| ruby3.0 | Tracked | |
| ruby3.1 | Tracked | |
| ruby3.1 | Tracked | |
| ruby3.2 | Tracked | |
| ruby3.2 | Tracked | |
| ruby3.3 | Tracked | |
| ruby3.3 | Tracked | |
| ruby3.3 | Tracked | |
| ruby3.3 | Tracked | |
| bootstrap_os | * | Tracked |
| rexml | * | Tracked |