CVE-2026-113877
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
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.
- Record
CVE-2026-113877- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-624
- Updated
- 2026-11-02
EUVDEUVD-2026-109147
7.5
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.
- Record
EUVD-2026-109147- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-q4hv-hfj9-x4r5
7.5
HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language...
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.
- Record
GHSA-q4hv-hfj9-x4r5- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-624
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-113877- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-624
- Updated
- 2026-11-02
OSV
7.5
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.
- Record
CVE-2026-113877- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-624
- Updated
- 2026-11-04
OSVDEBIAN-CVE-2026-113877
7.5
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.
- Record
DEBIAN-CVE-2026-113877- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-03
Affected packages
| Package | Affected | Fixed |
|---|---|---|
libhttp-headers-actionpack-perlDebian:12 |
All versions, plus listed versions 0.09-20.09-30.09-40.10-1 |
None known |
libhttp-headers-actionpack-perlDebian:13 |
All versions, plus listed versions 0.09-30.09-40.10-1 |
None known |
libhttp-headers-actionpack-perlDebian:14 |
before 0.10-1, plus listed versions 0.09-30.09-4 |
0.10-1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | EUVD, NVD, OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-113877 is a high vulnerability (CVSS 7.5) in libhttp-headers-actionpack-perl, published October 23, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.71%, the 53rd percentile. Fixed in libhttp-headers-actionpack-perl 0.10-1.
References
metacpan.org/release/RRWO/HTTP-Headers-ActionPack-0.10/changes
github.com/robrwo/perl-HTTP-Headers-ActionPack/commit/77f0deb23f3de872c2e64befd72750e0f0f4bec9.patch
openwall.com/lists/oss-security/2026/10/23/27
nvd.nist.gov/vuln/detail/CVE-2026-113877
github.com/advisories/GHSA-q4hv-hfj9-x4r5
cpan.org/modules
github.com/robrwo/perl-HTTP-Headers-ActionPack
github.com/CVEProject/cvelistV5/tree/main/cves/2026/113xxx/CVE-2026-113877.json
security-tracker.debian.org/tracker/CVE-2026-113877