HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions
HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions. _language_match interpolates each Accept-Language range into the pattern `/^$range\-/i` without escaping it, so regular expression syntax in the header reaches the regex engine. A 12-byte range such as `(a?|b?){26}z` backtracks for seconds, and each increment of the quantifier doubles the time. An invalid range such as `(` fails to compile. A remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.
CVE-2026-113877
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: cve:CVE-2026-113877
Structured affected-version data
Original package identities and version rules from this source.
[
{
"repo": "https://github.com/robrwo/perl-HTTP-Headers-ActionPack/",
"modules": [
"HTTP::Headers::ActionPack"
],
"versions": [
{
"status": "affected",
"version": "0",
"lessThan": "0.10",
"versionType": "custom"
}
],
"packageURL": "pkg:cpan/HTTP-Headers-ActionPack",
"packageName": "HTTP-Headers-ActionPack",
"programFiles": [
"lib/HTTP/Headers/ActionPack/ContentNegotiation.pm"
],
"collectionURL": "https://cpan.org/modules",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "HTTP::Headers::ActionPack::ContentNegotiation::_language_match"
},
{
"name": "HTTP::Headers::ActionPack::ContentNegotiation::choose_language"
}
]
}
]- Related CVEs
- CVE-2026-113877
Source reference:
/cveMetadata/cveId
Publisher severity
No explicit severity was provided.
- Event
- #55381 · Revision 1
- Added to Heist Feed
- Publisher date