← Back to CVE Explorer

CVE-2026-113877

Full vulnerability record from the local CVENow database.

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.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Awaiting Analysis
Source identifier
9b29abf9-4ab0-4765-b253-1875cd9b441e
Published
2026-10-23 21:17:21.597000
Last modified
2026-10-26 18:39:42.503000
View original CVE JSON
{
  "id": "CVE-2026-113877",
  "sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
  "published": "2026-10-23T21:17:21.597",
  "lastModified": "2026-10-26T18:39:42.503",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "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."
    }
  ],
  "affected": [
    {
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "affectedData": [
        {
          "defaultStatus": "unaffected",
          "collectionURL": "https://cpan.org/modules",
          "packageName": "HTTP-Headers-ActionPack",
          "modules": [
            "HTTP::Headers::ActionPack"
          ],
          "programFiles": [
            "lib/HTTP/Headers/ActionPack/ContentNegotiation.pm"
          ],
          "programRoutines": [
            {
              "name": "HTTP::Headers::ActionPack::ContentNegotiation::_language_match"
            },
            {
              "name": "HTTP::Headers::ActionPack::ContentNegotiation::choose_language"
            }
          ],
          "repo": "https://github.com/robrwo/perl-HTTP-Headers-ActionPack/",
          "packageURL": "pkg:cpan/HTTP-Headers-ActionPack",
          "versions": [
            {
              "version": "0",
              "lessThan": "0.10",
              "versionType": "custom",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "weaknesses": [
    {
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-624"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/robrwo/perl-HTTP-Headers-ActionPack/commit/77f0deb23f3de872c2e64befd72750e0f0f4bec9.patch",
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
    },
    {
      "url": "https://metacpan.org/release/RRWO/HTTP-Headers-ActionPack-0.10/changes",
      "source": "9b29abf9-4ab0-4765-b253-1875cd9b441e"
    },
    {
      "url": "http://www.openwall.com/lists/oss-security/2026/10/23/27",
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    }
  ]
}