CVE-2026-35611

Addressable has a Regular Expression Denial of Service in Addressable templates

Published Apr 7, 2026 CVSS 3.1 · 7.5 High EPSS < 1% KEV · Not listed
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.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-h27x-rffw-24p4 Addressable has a Regular Expression Denial of Service in Addressable templates
Ubuntu USN Ubuntu USN USN-8515-1 Addressable vulnerability
History
Type Values Removed Values Added
First Time appeared Addressable Project
Addressable Project addressable
CPEs cpe:2.3:a:addressable_project:addressable:*:*:*:*:*:ruby:*:*
Vendors & Products Addressable Project
Addressable Project addressable
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Sporkmonger
Sporkmonger addressable
Vendors & Products Sporkmonger
Sporkmonger addressable
Type Values Removed Values Added
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.
Title Addressable has a Regular Expression Denial of Service in Addressable templates
Weaknesses CWE-1333
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Apr 9, 2026, 2:36 PM
Reserved
Apr 3, 2026, 9:25 PM
Status
Analyzed
Published
Apr 7, 2026, 5:16 PM
Modified
Oct 26, 2026, 10:10 PM
Severity
Moderate
Public date
Apr 7, 2026, 4:38 PM