{"id":"CVE-2026-113877","revision":null,"records":[{"revision":"9050830d90d546ceb6a9da59747f2905","observedAt":"2026-10-24T01:48:37.634+00:00","statement":{"source":"cve-program","id":"CVE-2026-113877","aliases":[],"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.","state":0,"publishedAt":"2026-10-23T20:07:20.677+00:00","modifiedAt":"2026-10-23T23:06:45.441+00:00","affected":[{"ecosystem":"https://cpan.org/modules","name":"HTTP-Headers-ActionPack","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"collectionURL\": \"https://cpan.org/modules\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"modules\": [\n                        \"HTTP::Headers::ActionPack\"\n                    ],\n                    \"packageName\": \"HTTP-Headers-ActionPack\",\n                    \"packageURL\": \"pkg:cpan/HTTP-Headers-ActionPack\",\n                    \"programFiles\": [\n                        \"lib/HTTP/Headers/ActionPack/ContentNegotiation.pm\"\n                    ],\n                    \"programRoutines\": [\n                        {\n                            \"name\": \"HTTP::Headers::ActionPack::ContentNegotiation::_language_match\"\n                        },\n                        {\n                            \"name\": \"HTTP::Headers::ActionPack::ContentNegotiation::choose_language\"\n                        }\n                    ],\n                    \"repo\": \"https://github.com/robrwo/perl-HTTP-Headers-ActionPack/\",\n                    \"versions\": [\n                        {\n                            \"lessThan\": \"0.10\",\n                            \"status\": \"affected\",\n                            \"version\": \"0\",\n                            \"versionType\": \"custom\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://metacpan.org/release/RRWO/HTTP-Headers-ActionPack-0.10/changes","https://github.com/robrwo/perl-HTTP-Headers-ActionPack/commit/77f0deb23f3de872c2e64befd72750e0f0f4bec9.patch"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-113877","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-113877","identifiers":["CVE-2026-113877"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-10-24T14:17:19.4104962+00:00","complete":true,"records":1756,"lastAttemptAt":"2026-10-24T14:17:19.4104962+00:00","lastSuccessAt":"2026-10-24T14:17:19.5856181+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:19.5856188+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-9b3cad78792c7367da03684feab05819ddebc4d137048bdbbdabdbb4d2879391-2470fe2be50451c7b1c5d46aa50ee8d717b2bd367cffab553d8ab036ac1526a2","complete":true,"records":413899,"lastAttemptAt":"2026-10-24T14:17:18.6335261+00:00","lastSuccessAt":"2026-10-24T14:17:18.6128893+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:18.6335261+00:00","snapshotPublishedAt":"2026-10-24T13:27:13+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-4088fa1d3f6c48e58520a9f0d35aa8e6","complete":false,"records":620,"lastAttemptAt":"2026-10-24T14:28:12.4972167+00:00","lastSuccessAt":"2026-10-24T14:28:12.5182534+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:28:12.5182534+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-10-24T14:17:19.4104962+00:00","complete":true,"records":1093,"lastAttemptAt":"2026-10-24T14:17:19.4104962+00:00","lastSuccessAt":"2026-10-24T14:17:19.5867467+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:19.5867472+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-26bb011b2492497599541b6266e7088f","complete":false,"records":973,"lastAttemptAt":"2026-10-24T14:17:44.8451923+00:00","lastSuccessAt":"2026-10-24T14:17:44.841+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:44.841+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":1000,"expectedIdentifiers":13474},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-2375a4e597279abf92e8747e140fe8da9d421877cd49cae3ac69a2cb78469b2c","complete":true,"records":9779,"lastAttemptAt":"2026-10-24T14:17:19.275221+00:00","lastSuccessAt":"2026-10-24T13:19:53.1346702+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:19.275221+00:00","snapshotPublishedAt":"2026-10-24T03:03:12+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-16ad89dfea13ab9e9b0108e63a759d63bd4559cc68b58491107d62ee35bbbaf2","complete":true,"records":1965,"lastAttemptAt":"2026-10-24T14:17:18.6875868+00:00","lastSuccessAt":"2026-10-23T16:01:26.4487605+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:18.6875868+00:00","snapshotPublishedAt":"2026-10-21T12:18:07+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-7da67a15aa6e56a0e3081a7646dc74d537e6ef974afc593c2b1794ed01970648","complete":true,"records":2969,"lastAttemptAt":"2026-10-24T14:17:19.3761706+00:00","lastSuccessAt":"2026-10-24T13:19:59.1145547+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:19.3761706+00:00","snapshotPublishedAt":"2026-10-24T08:47:51+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-01c673643721642d348dd2cebd6ec154e69bb7cd20a86eeae91240dc3610a60f","complete":true,"records":230735,"lastAttemptAt":"2026-10-24T14:17:19.1686505+00:00","lastSuccessAt":"2026-10-24T13:19:32.2429544+00:00","error":null,"lastVerifiedAt":"2026-10-24T14:17:19.1686505+00:00","snapshotPublishedAt":"2026-10-24T04:48:23+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null}]}