What’s Vulnerable › Vulnerabilities
CVE-2026-35611: Addressable has a Regular Expression Denial of Service in Addressable templates
- Severity: high (CVSS 7.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.4% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-04-07 · updated 2026-10-26
- Weakness: CWE-1333
Description
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.3.0 to before 2.9.0, within the URI template implementation in Addressable, two classes of URI template generate regular expressions vulnerable to catastrophic backtracking. Templates using the * (explode) modifier with any expansion operator (e.g., {foo*}, {+var*}, {#var*}, {/var*}, {.var*}, {;var*}, {?var*}, {&var*}) generate patterns with nested unbounded quantifiers that are O(2^n) when matched against a maliciously crafted URI. Templates using multiple variables with the + or # operators (e.g., {+v1,v2,v3}) generate patterns with O(n^k) complexity due to the comma separator being within the matched character class, causing ambiguous backtracking across k variables. When matched against a maliciously crafted URI, this can result in catastrophic backtracking and uncontrolled resource consumption, leading to denial of service. This vulnerability is fixed in 2.9.0.
Affected products
- sporkmonger addressable: from 2.3.0 before 2.9.0 — fixed in 2.9.0
- Rubygems Addressable: from 2.3.0 before 2.9.0; 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.3.7 (+18) — fixed in 2.9.0
How to fix
Upgrade to a fixed version: sporkmonger addressable 2.9.0; Rubygems Addressable 2.9.0. Check the vendor advisory for mitigations.
References
Get alerted when CVE-2026-35611 or the next vulnerability affects your stack