SEPTEMBER 20, 2026
Live Feed
Back to database
Case File

CVE-2026-60075

HIGH · CVSS 7.5 EPSS 0.37% Public Exploit

Source: NVD + CISA KEV + EPSS · Published 2026-07-30 · Last synced 2026-08-29

CyberRota Analysis

AI-Generated

The Date::Manip module for Perl, up to version 6.99, is vulnerable to CPU exhaustion due to a quadratic backtracking issue in the _parse_time function, which can be triggered by passing an untrusted string containing long runs of whitespace. This vulnerability allows an attacker to induce denial of service by causing excessive CPU usage during parsing, potentially leading to application unavailability. Organizations utilizing Date::Manip for time parsing in their Perl applications should prioritize patching this vulnerability to mitigate the risk of service disruption.

Public Exploit Signal

A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.

GitHub PoC Links

Note: these links are listed for security research and verification purposes only.

CVE
CVE-2026-60075
Severity
HIGH
CVSS
7.5
EPSS
0.37%

Original NVD Description

Date::Manip versions through 6.99 for Perl allow CPU exhaustion via quadratic backtracking in the unanchored time substitution in _parse_time. _parse_time removes a time from anywhere in the string with the unanchored substitution `s/$timerx/ /`, where $timerx is an auto-generated alternation of time patterns reached through a leading `(?:$atrx|^|\s+)`. The engine therefore retries the match at every position of an interior whitespace run: at each start position the leading `\s+` consumes the rest of the run greedily, the time alternation fails because the run holds no digits, and the engine backtracks a space at a time across the run before advancing the start position, which is quadratic in the length of the run. No time need be present in the string for this to happen, only a long run of whitespace, and the parse time rises about fourfold for each doubling of the run: a few kilobytes of whitespace costs seconds of CPU per parse and tens of kilobytes costs minutes. Any caller that passes an untrusted string of unbounded length to ParseDate(), Date::Manip::Date->parse() or ->parse_time() can be made to spend unbounded CPU in a single parse, a denial of service.