Date.parse in the date gem through 3.2.0 for Ruby allows ReDoS (regular expression Denial of Service) via a long string. The fixed versions are 3.2.1, 3.1.2, 3.0.2, and 2.0.1.
The product uses a regular expression with an inefficient, possibly exponential worst-case computational complexity that consumes excessive CPU cycles.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Date | Ruby-lang | * | 2.0.1 (excluding) |
Date | Ruby-lang | 3.0.0 (including) | 3.0.2 (excluding) |
Date | Ruby-lang | 3.1.0 (including) | 3.1.2 (excluding) |
Date | Ruby-lang | 3.2.0 (including) | 3.2.0 (including) |
Ruby | Ruby-lang | 2.6.0 (including) | 2.6.9 (excluding) |
Ruby | Ruby-lang | 2.7.0 (including) | 2.7.5 (excluding) |
Ruby | Ruby-lang | 3.0.0 (including) | 3.0.3 (excluding) |
Attackers can create crafted inputs that
intentionally cause the regular expression to use
excessive backtracking in a way that causes the CPU
consumption to spike.