CVE-2026-60074
Received Received - Intake

Date Parsing Flaw in Date::Manip for Perl

Vulnerability report for CVE-2026-60074, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-30

Last updated on: 2026-07-30

Assigner: CPANSec

Description

Date::Manip versions through 6.99 for Perl return corrupted dates via non-ASCII decimal digits that pass the numeric range tests in check. The parse regexes capture year, month and day with the `\d` shorthand, which on a character string matches the whole Unicode decimal digit property `\p{Nd}` and not just `[0-9]`. Date::Manip::Base::check then validates the captured fields with numeric comparisons alone (`$y<1 || $y>9999`, `$m<1 || $m>12`, `$d<1 || $d>$days`), and _parse_check stores the numified fields (`$y+0`). Perl truncates a string at the first character that is not an ASCII digit, so a field whose leading characters are ASCII digits numifies to an in-range prefix and satisfies every test: a year field of three ASCII digits followed by U+0664 ARABIC-INDIC DIGIT FOUR numifies to 202, giving the year 0202, and one non-ASCII digit in the month or day field shifts those fields the same way. The hour, minute and second fields match explicit ASCII character classes (`0?[0-9]`, `[0-5][0-9]`) and do not shift, though a non-ASCII digit in a fractional hour or minute field truncates the fraction. Any caller that passes an untrusted character string to ParseDate() or Date::Manip::Date->parse() can get back a date that differs from the string it parsed, with no parse error. Where the parsed date gates logic such as an expiry check or a retention window, the shift goes unnoticed.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-30
Last Modified
2026-07-30
Generated
2026-07-30
AI Q&A
2026-07-30
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
sullivan_beck date_manip 6.99

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-1289 The product receives an input value that is used as a resource identifier or other type of reference, but it does not validate or incorrectly validates that the input is equivalent to a potentially-unsafe value.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

CVE-2026-60074 is a vulnerability in the Date::Manip Perl module where date parsing incorrectly accepts non-ASCII Unicode digits (like Arabic-Indic digits) due to the use of the \d regex shorthand. This allows malicious input like '202\x{664}-03-08' to be parsed as a valid date, potentially leading to incorrect date processing or security bypasses.

Detection Guidance

To detect this vulnerability, inspect Perl scripts using Date::Manip for improper date parsing. Check for regex patterns using \d instead of [0-9] in date fields. Use commands like grep -r "\\d" /path/to/perl/scripts to find potential vulnerable patterns.

Impact Analysis

Attackers could exploit this to manipulate date parsing results, potentially causing denial of service, incorrect date calculations, or unintended logic in systems relying on date validation. For example, a year field like '202\x{664}' would parse as '202', leading to incorrect year handling.

Mitigation Strategies

Apply the official patch from Resource 2 to replace \d with [0-9] in regex patterns. Update Date::Manip to the latest patched version. Review and sanitize all user inputs passed to date parsing functions to ensure only ASCII digits are accepted.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-60074. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart