Description
HTTP::Date versions before 6.08 for Perl allow CPU exhaustion via polynomial regex backtracking in parse_date.

parse_date() matches the date string against a chain of alternative regexes, and str2time() delegates to it. Several of these patterns place unbounded quantifiers next to each other before a trailing `\s*$` anchor. A valid date prefix followed by a long interior run of digits, letters, or whitespace and a single trailing byte that defeats the final match forces the engine to repartition the run, giving polynomial (about quadratic) backtracking. A header value of a few tens of kilobytes runs for tens of seconds of CPU.

HTTP::Date parses timestamps such as HTTP `Date`, `Expires`, and `Last-Modified` headers, which commonly originate from untrusted sources. Any caller that passes an untrusted date header to str2time() or parse_date() can be driven to consume unbounded CPU, a denial of service.
Published: 2026-07-17
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

HTTP::Date versions before 6.08 contain a regex-driven parse_date function that uses a chain of patterns with unbounded quantifiers placed in sequence. When an attacker sends a date header with an excessively long run of digits, letters, or whitespace followed by a single trailing byte, the Perl regex engine must perform polynomial backtracking, consuming significant CPU time. This regular-expression backtracking flaw (CWE-1333) can cause the process that parses the header to stall for tens of seconds, leading to a denial of service.

Affected Systems

The vulnerability affects any installation of the OALDERS HTTP::Date Perl module with a version lower than 6.08. The module is commonly used to parse the Date, Expires, and Last-Modified HTTP headers, which are typically supplied by external clients. Any application or service that calls str2time or parse_date on untrusted header values is susceptible.

Risk and Exploitability

The CVSS score is 7.5, indicating a high impact, but the EPSS score is below 1 %, and the flaw is not listed in the CISA KEV catalog. An attacker can trigger the denial of service by crafting a malicious HTTP request containing a long, problematic date header, which can be sent from the internet to the target server. Thus the attack vector is remote network access, requires no privileged interaction, and can affect a single user session or an entire application if the server is busy. While the probability of exploitation is low, the potential service disruption warrants immediate mitigation.

Generated by OpenCVE AI on July 31, 2026 at 00:16 UTC.

Remediation

Vendor Solution

Upgrade to HTTP::Date 6.08 or later, which rejects input longer than 64 characters before the date-parsing regexes run.


OpenCVE Recommended Actions

  • Upgrade the HTTP::Date module to version 6.08 or later, which enforces a 64-character limit on header values before executing regexes.
  • If an upgrade is not immediately possible, enforce a 64-character hard limit on any Date, Expires, or Last-Modified header value before passing it to str2time or parse_date to prevent the backtracking scenario.
  • Add application-level input validation or rate limiting for requests that provide Date, Expires, or Last-Modified headers to mitigate repeated abuse and contain potential service-disruption attacks.

Generated by OpenCVE AI on July 31, 2026 at 00:16 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8599-1 HTTP-Date vulnerability
History

Tue, 28 Jul 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Oalders
Oalders http::date
Vendors & Products Oalders
Oalders http::date

Tue, 21 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Fri, 17 Jul 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 17 Jul 2026 16:00:00 +0000

Type Values Removed Values Added
Description HTTP::Date versions before 6.08 for Perl allow CPU exhaustion via polynomial regex backtracking in parse_date. parse_date() matches the date string against a chain of alternative regexes, and str2time() delegates to it. Several of these patterns place unbounded quantifiers next to each other before a trailing `\s*$` anchor. A valid date prefix followed by a long interior run of digits, letters, or whitespace and a single trailing byte that defeats the final match forces the engine to repartition the run, giving polynomial (about quadratic) backtracking. A header value of a few tens of kilobytes runs for tens of seconds of CPU. HTTP::Date parses timestamps such as HTTP `Date`, `Expires`, and `Last-Modified` headers, which commonly originate from untrusted sources. Any caller that passes an untrusted date header to str2time() or parse_date() can be driven to consume unbounded CPU, a denial of service.
Title HTTP::Date versions before 6.08 for Perl allow CPU exhaustion via polynomial regex backtracking in parse_date
Weaknesses CWE-1333
References

Subscriptions

Oalders Http::date
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-21T14:17:09.873Z

Reserved: 2026-07-04T11:57:33.964Z

Link: CVE-2026-14741

cve-icon Vulnrichment

Updated: 2026-07-17T17:25:13.175Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T00:30:18Z

Weaknesses
  • CWE-1333

    Inefficient Regular Expression Complexity