{"id":"CVE-2026-113877","aliases":["DEBIAN-CVE-2026-113877","EUVD-2026-109147","GHSA-q4hv-hfj9-x4r5","openSUSE-SU-2026:12501-1"],"status":"published","title":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions","description":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions.\n\n_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.\n\nA remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-12","score":0.00708,"percentile":0.53965,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-624"],"published":"2026-10-23T20:07:20Z","modified":"2026-11-10T13:15:12Z","fixes":[{"ecosystem":"Debian:14","package":"libhttp-headers-actionpack-perl","fixed_in":["0.10-1"],"sources":["osv"]},{"ecosystem":"openSUSE:Tumbleweed","package":"perl-HTTP-Headers-ActionPack","fixed_in":["0.100.0-1.1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"libhttp-headers-actionpack-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.09-2","0.09-3","0.09-4","0.10-1"]},{"source":"osv","ecosystem":"Debian:13","package":"libhttp-headers-actionpack-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.09-3","0.09-4","0.10-1"]},{"source":"osv","ecosystem":"Debian:14","package":"libhttp-headers-actionpack-perl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.10-1"}]}],"versions":["0.09-3","0.09-4"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"perl-HTTP-Headers-ActionPack","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.100.0-1.1"}]}]}],"references":[{"url":"https://metacpan.org/release/RRWO/HTTP-Headers-ActionPack-0.10/changes","tags":["release-notes","advisory"]},{"url":"https://github.com/robrwo/perl-HTTP-Headers-ActionPack/commit/77f0deb23f3de872c2e64befd72750e0f0f4bec9.patch","tags":["patch","fix"]},{"url":"http://www.openwall.com/lists/oss-security/2026/10/23/27","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-113877","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-q4hv-hfj9-x4r5"},{"url":"https://cpan.org/modules","tags":["web"]},{"url":"https://github.com/robrwo/perl-HTTP-Headers-ActionPack/","tags":["web"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/113xxx/CVE-2026-113877.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-113877","tags":["advisory"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2026-113877","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-113877","title":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions","description":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions.\n\n_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.\n\nA remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.","status":"published","published":"2026-10-23T20:07:20.677Z","modified":"2026-11-02T15:59:52.574Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"adp"}],"cwes":["CWE-624"],"updated_at":"2026-11-02T18:00:08.034842Z"}],"euvd":[{"id":"EUVD-2026-109147","description":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions.\n\n_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.\n\nA remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.","status":"published","published":"2026-10-23T20:07:20Z","modified":"2026-11-02T15:59:52Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-03T05:08:40.251173Z"}],"ghsa":[{"id":"GHSA-q4hv-hfj9-x4r5","title":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language...","description":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions.\n\n_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.\n\nA remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.","status":"published","published":"2026-10-23T21:36:06Z","modified":"2026-11-02T18:33:06Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-624"],"updated_at":"2026-11-02T19:02:40.409728Z"}],"nvd":[{"id":"CVE-2026-113877","description":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions.\n\n_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.\n\nA remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.","status":"published","published":"2026-10-23T21:17:21.597Z","modified":"2026-11-02T16:17:27.47Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-624"],"updated_at":"2026-11-02T20:51:42.579129Z"}],"osv":[{"id":"CVE-2026-113877","title":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions","description":"HTTP::Headers::ActionPack versions before 0.10 for Perl allow CPU exhaustion via Accept-Language ranges matched as regular expressions.\n\n_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.\n\nA remote attacker can exhaust CPU, or make choose_language die, in any application that passes an untrusted Accept-Language header to it.","status":"published","published":"2026-10-23T20:07:20.677Z","modified":"2026-11-10T13:27:20.296511166Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-624"],"updated_at":"2026-11-10T14:01:16.985762Z"},{"id":"DEBIAN-CVE-2026-113877","description":"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.","status":"published","published":"2026-10-23T21:17:21.597Z","modified":"2026-11-03T10:00:17.837307029Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-03T10:27:58.933618Z"},{"id":"openSUSE-SU-2026:12501-1","title":"perl-HTTP-Headers-ActionPack-0.100.0-1.1 on GA media","description":"These are all security issues fixed in the perl-HTTP-Headers-ActionPack-0.100.0-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-11-09T00:00:00Z","modified":"2026-11-10T13:15:12.1057482Z","updated_at":"2026-11-10T13:29:51.103746Z"}]}}
