Skip to main content

Date::Manip EUVDEUVD-2026-51125

| CVE-2026-60075 HIGH
Inefficient Regular Expression Complexity (ReDoS) (CWE-1333)
2026-07-30 CPANSec GHSA-6w78-p685-p2f6
7.5
CVSS 3.1 · Vendor: CPANSec
Share

Severity by source

Vendor (CPANSec) PRIMARY
7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI
7.5 HIGH

Network-reachable with no authentication or interaction required; only availability is impacted via CPU exhaustion, with no confidentiality or integrity effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
HIGH
qualitative
Red Hat
7.5 HIGH
qualitative

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

4
Analysis Generated
Jul 31, 2026 - 20:33 vuln.today
CVSS changed
Jul 31, 2026 - 18:37 NVD
7.5 (HIGH)
CVE Published
Jul 30, 2026 - 13:42 cve.org
HIGH 7.5
CVE Published
Jul 30, 2026 - 13:42 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

AnalysisAI

CPU exhaustion in the Perl module Date::Manip through version 6.99 allows unauthenticated remote attackers to cause unbounded denial of service by supplying strings containing long whitespace runs to any of the three exposed parsing entry points. The flaw is quadratic backtracking (CWE-1333) in the unanchored substitution within _parse_time: no time value is needed in the input, only a large block of whitespace, making it trivially deliverable via any user-controlled field that reaches the parser. SSVC rates this automatable with no confirmed active exploitation and EPSS sits at 0.19%, but any Internet-facing application that passes unsanitised date strings to Date::Manip is a viable DoS target.

Technical ContextAI

Date::Manip (CPE: cpe:2.3:a:sbeck:date::manip:*:*:*:*:*:*:*:*) is a CPAN Perl library maintained by SBECK that provides calendar arithmetic, timezone handling, and flexible date string parsing. The vulnerable logic is in _parse_time (Date.pm lines 1526 and 1811 in the 6.99 release), which removes a time substring from anywhere in the input using the unanchored substitution s/$timerx/ /. The auto-generated pattern $timerx begins with a non-capturing group (?:$atrx|^|\s+) that greedily consumes whitespace. When the regex engine encounters an interior whitespace run and the trailing time alternation fails (no digits present), it backtracks one space at a time across the entire run before advancing the outer start position - a classic O(n²) catastrophic backtracking scenario defined by CWE-1333 (Inefficient Regular Expression Complexity). The quadratic cost means a few kilobytes of whitespace costs seconds of CPU per parse call, and tens of kilobytes costs minutes, with cost rising approximately fourfold per doubling of the run length.

RemediationAI

Apply the CPANSec-supplied patch against the Date-Manip 6.99 source, available at https://security.metacpan.org/patches/D/Date-Manip/6.99/CVE-2026-60075-r1.patch; this patch addresses the quadratic backtracking in _parse_time by anchoring or restructuring the substitution regex. Monitor CPAN for a formal versioned release beyond 6.99 that incorporates the fix, as the referenced patch file has not yet been confirmed as part of a tagged upstream release. As an immediate compensating control prior to patching, enforce a maximum input length on all strings passed to ParseDate(), parse(), or parse_time() - rejecting or truncating inputs beyond a few hundred characters eliminates the quadratic growth for any realistic date string and has no effect on well-formed inputs. Additionally, if the application architecture allows, apply upstream request-body size limits at the web server or load balancer layer (e.g., nginx client_max_body_size or Apache LimitRequestBody), which constrains the payload an attacker can deliver per request. These controls can be combined with rate limiting to further reduce DoS exposure while patching is scheduled.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
openSUSE Leap 16.0 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS Affected

Share

EUVD-2026-51125 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy