The REXML gem before 3.3.9 has a ReDoS vulnerability when it parses an XML that has many digits between &# and x...; in a hex numeric character reference (&#x...;).
This does not happen with Ruby 3.2 or later. Ruby 3.1 is the only affected maintained Ruby. Note that Ruby 3.1 will reach EOL on 2025-03.
The REXML gem 3.3.9 or later include the patch to fix the vulnerability.
Use Ruby 3.2 or later instead of Ruby 3.1.
| Score | Percentile |
|---|---|
| 0.90% | 75.55% |
| Base score | Version | Severity | Vector |
|---|---|---|---|
| 7.5 | 3.1 | — |
|
| 6.6 | 4.0 | — |
|
| Type | Value |
|---|---|
| GHSA | GHSA-2rxp-v6pw-ch6m ↗ |
| CVE | CVE-2024-49761 ↗ |
| CWE id | Name |
|---|---|
| CWE-1333 | Inefficient Regular Expression Complexity |
Vulnerable version ranges and first patched releases as published by GitHub.
| Ecosystem | Package | Vulnerable range | First patched | Vulnerable functions |
|---|---|---|---|---|
| rubygems | rexml | < 3.3.9 | 3.3.9 | — |