Description
Date::Manip versions through 7.00 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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| — | Date-Manip | ≤ 7.00 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | libdate-manip-perl | 6.99-2 | — |
| Debian 13 | libdate-manip-perl | No fix yet | — |
| Debian 12 | libdate-manip-perl | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | libdate-manip-perl | No fix yet | — |
| Ubuntu 24.04 LTS | libdate-manip-perl | No fix yet | — |
| Ubuntu 22.04 LTS | libdate-manip-perl | No fix yet | — |
| Ubuntu 20.04 LTS | libdate-manip-perl | No fix yet | — |
| Ubuntu 18.04 LTS | libdate-manip-perl | No fix yet | — |
Show 2 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 16.04 LTS | libdate-manip-perl | No fix yet | — |
| Ubuntu 14.04 LTS | libdate-manip-perl | No fix yet | — |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLES 15 SP6 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLES 15 SP5 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLES 15 SP4 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLES 12 SP5 | perl-Date-Manip | 6.42-3.3.1 | SUSE-SU-2026:3537-1 |
Show 7 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES for SAP 16.0 | perl-Date-Manip | 6.960.0-160000.3.1 | SUSE-SU-2026:23229-1, SUSE-SU-2026:23218-1 |
| SLES for SAP 15 SP6 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLES for SAP 15 SP5 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLES for SAP 15 SP4 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLES 16.0 | perl-Date-Manip | 6.960.0-160000.3.1 | SUSE-SU-2026:23229-1, SUSE-SU-2026:23218-1 |
| SLE HPC 15 SP5 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
| SLE HPC 15 SP4 | perl-Date-Manip | 6.70-150000.4.3.1 | SUSE-SU-2026:3551-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | perl-Date-Manip | 6.990.0-2.1 | openSUSE-SU-2026:11457-1 |
| openSUSE Leap 16.0 | perl-Date-Manip | 6.960.0-160000.3.1 | openSUSE-SU-2026:21552-1, openSUSE-SU-2026:21510-1 |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | perl-Date-Manip | 6.85-1.amzn2023.0.3 | ALAS2023-2026-2050 |
| Amazon Linux 2 | perl-Date-Manip | 6.41-2.amzn2.0.1 | ALAS2-2026-3856 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | perl-Date-Manip | No fix yet | — |
Advisories 9
- SUSE-SU-2026:23229-1 Security update for perl-Date-Manip SUSE / openSUSE Security Updates · Aug 27, 2026
- SUSE-SU-2026:23218-1 Security update for perl-Date-Manip SUSE / openSUSE Security Updates · Aug 27, 2026
- ALAS2-2026-3856 Important: perl-Date-Manip security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Aug 17, 2026
- ALAS2023-2026-2050 Important: perl-Date-Manip security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Aug 17, 2026
- openSUSE-SU-2026:21552-1 Security update for perl-Date-Manip SUSE / openSUSE Security Updates · Aug 12, 2026
- SUSE-SU-2026:3551-1 Security update for perl-Date-Manip SUSE / openSUSE Security Updates · Aug 12, 2026
- SUSE-SU-2026:3537-1 Security update for perl-Date-Manip SUSE / openSUSE Security Updates · Aug 11, 2026
- openSUSE-SU-2026:11457-1 perl-Date-Manip-6.990.0-2.1 on GA media SUSE / openSUSE Security Updates · Aug 6, 2026
- openSUSE-SU-2026:21510-1 Security update for perl-Date-Manip SUSE / openSUSE Security Updates · Aug 2, 2026
References
- https://security.metacpan.org/patches/D/Date-Manip/6.99/CVE-2026-60074-r1.patch patch
- https://metacpan.org/release/SBECK/Date-Manip-6.99/source/lib/Date/Manip/Base.pm#L602-614
- https://metacpan.org/release/SBECK/Date-Manip-6.99/source/lib/Date/Manip/Date.pm#L1536-1539
- https://github.com/SBECK-github/Date-Manip/pull/54 issue-tracking