☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
CPANSec logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H 🐛 CWE-1333
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-60075

CVE-2026-60075 Denial of Service in Date
📅 PUBLISHED: 2026-07-30 14:17 UTC 🔄 UPDATED: 2026-10-02 19:31 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.63%
👁️
0.63% probability
15.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Global License: Open Source
Patch available — upgrade to latest release
CVSS VECTOR BREAKDOWN 7.5
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: N Confidentiality None
I: N Integrity None
A: H Availability High
7.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-60075 describes a denial of service (CPU exhaustion) vulnerability in the Perl module Date::Manip, versions through 6.99. The flaw resides in the _parse_time function, which uses an unanchored regular expression substitution to remove time patterns from a string. The regex engine performs catastrophic backtracking when processing long sequences of whitespace characters, leading to quadratic CPU consumption. An attacker can trigger this by providing a string containing only a few kilobytes of whitespace, causing seconds of CPU time per parse; tens of kilobytes can cause minutes of delay. Any application that passes untrusted, unbounded input to ParseDate(), Date::Manip::Date->parse(), or ->parse_time() is vulnerable.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the CPAN module Date::Manip. Organizations using Perl in production environments should audit their dependency trees for versions ≤ 6.99. The module is widely used for date parsing in Perl applications, including web frameworks, logging systems, and cron‑like schedulers. Since no official patch has been released (as of this report), supply chain risk is elevated. Consider replacing the module with a safer alternative or applying input length limits as a temporary mitigation.

CVSS Breakdown & Threat Level

  • Base Score: 5.3 (Medium) – based on CVSS:3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
  • Attack Vector: Network (attacker sends a crafted string)
  • Attack Complexity: Low (no special privileges or conditions)
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: None
  • Availability Impact: Low (CPU exhaustion, measurable degradation)

Despite the low availability impact, the attack can be repeated to cause sustained denial of service.

Deep Dive & Mechanics

The vulnerable function _parse_time in Date::Manip applies the following substitution to any string passed to it:

s/$timerx/ /;

Here, $timerx is an auto‑generated alternation of time patterns. The leading part of the pattern is (?:$atrx|^|/s+), which allows the regex engine to start matching at any position – either at the beginning of the string (^) or after a whitespace sequence (/s+). When the input contains a long run of whitespace (e.g., spaces, tabs), the engine attempts to match at every possible start position within that whitespace run. For each start position:

  • The \s+ (or /s+ – note the typo in the original description; the actual code uses \s+) greedily consumes the remaining whitespace.
  • The time alternation fails because the whitespace contains no digits.
  • The engine backtracks, reducing the consumed whitespace one character at a time, before advancing the start position to the next character.

This behavior is quadratic in the length of the whitespace run: for a run of length n, the engine performs O(n²) steps. The attack does not require any actual time pattern to be present in the string.

Example: A 10,000‑character whitespace string causes approximately 50 million backtracking attempts, consuming several seconds of CPU on modern hardware. A 50,000‑character string yields minutes of processing.

Vulnerable vs. Patched Code

Vulnerable code (Date::Manip <= 6.99):

# In _parse_time (simplified)
my $timerx = '(?:$atrx|^|\s+)' . ... ;  # auto-generated alternatives
$string =~ s/$timerx/ /;                 # unanchored substitution

Patched code (hypothetical fix, not yet released):

# Anchored approach: only attempt match at start of string
my $timerx = '^(?:' . ... . ')';
$string =~ s/$timerx/ /;

Alternatively, a safe fix would be to limit the internal backtracking by using possessive quantifiers or atomic groups:

my $timerx = '(?:$atrx|^|(?>\s+))' . ... ;

Exploitation & Lab Setup

Red Team

No public exploit code exists. The following Perl one‑liner demonstrates the vulnerability:

perl -MDate::Manip -e '
my $whitespace = " " x 20000;
my $date = Date::Manip::ParseDate($whitespace);
print "Parsed in " . time() . " seconds\n";
'

A remote attacker can deliver the malicious payload via HTTP headers, POST parameters, or any input that eventually reaches a vulnerable date parsing routine. For a web application, submit a request with a long whitespace string in a date field (e.g., ?date= with 50,000 spaces).

Proof of concept (Python):

import requests
# 50,000 spaces
payload = "?date=" + "%20" * 50000
requests.get("http://target/cgi-bin/date_parse.cgi" + payload)

Blue Team

  • Detection: Monitor for requests containing unusually long strings of whitespace (≥1000 characters) sent to endpoints that parse dates.
  • Rate Limiting: Implement per‑client rate limits to prevent a single attacker from consuming server resources.
  • Input Validation: Reject any input containing whitespace runs longer than a sensible threshold (e.g., 200 characters) before passing to date parsers.
  • Sandboxing: Run Perl applications in a container with CPU limits (e.g., docker run --cpus=1) to cap the damage.

Indicators of Compromise (IOCs)

  • Network: HTTP requests with query strings or POST bodies containing long sequences of whitespace (e.g., URI‑encoded %20 repeated 10,000+ times).
  • System: High CPU usage spikes in Perl processes correlating with inbound network requests.
  • Logs: Application logs showing extreme processing delays (e.g., parse() taking >10 seconds).
  • File: Not applicable.

Detection Engineering

YARA Rule

rule Detect_DateManip_Vulnerable {
    meta:
        description = "Detects Date::Manip module versions <= 6.99 in Perl scripts"
        author = "Valters IT"
        date = "2025-01-27"
        cve = "CVE-2026-60075"
    strings:
        $version = /Date::Manip[\s\S]{0,200}\$VERSION\s*=\s*"(\d+\.\d+)"/ nocase
        $use = "use Date::Manip" nocase
        $require = "require Date::Manip" nocase
    condition:
        ($use or $require) and $version
}

Sigma Rule

title: Date::Manip CPU Exhaustion - Long Whitespace Input
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Detects excessive CPU usage from Date::Manip parsing long whitespace strings.
author: Valters IT
logsource:
    product: linux
    service: syslog
    category: application
detection:
    selection:
        - EventID: "1"
          ProcessName: "*perl*"
          CommandLine|contains: "Date::Manip"
    condition: selection
falsepositives:
    - Legitimate date parsing of large files (rare)
level: high
tags:
    - attack.t1499
    - cve.2026.60075

Suricata Rule

alert http any any -> any any (msg:"CVE-2026-60075 Date::Manip CPU exhaustion attempt"; flow:to_server; content:"%20"; distance:0; within:50; pcre:"/%20{1000,}/i"; sid:1000001; rev:1;)

Note: Replace %20 with other whitespace encodings as needed (e.g., + for URL‑encoded spaces).

Remediation & Mitigation

  1. Patch: Await an official fix from the Date::Manip maintainer. As of now, no patch is available.
  2. Input Length Limitation: Truncate or reject input strings that exceed a reasonable length (e.g., 1024 bytes) before passing to ParseDate().
  3. Replace Module: Migrate to safer date‑parsing modules such as DateTime::Format::ISO8601 or Time::Piece.
  4. WAF Rules: Deploy web application firewall rules to block requests containing excessive contiguous whitespace characters.
  5. CPU Quotas: Run Perl applications under resource‑constrained containers (e.g., Docker CPU limits, Linux cgroups).
  6. Monitor: Implement detection rules (YARA/Sigma/Suricata) to alert on exploitation attempts.

Valters IT
Cyber Threat Intelligence Division
Report generated from CVE-2026-60075 analysis

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-60075/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.