DateTime::Lite before 0.8.1 allows CPU exhaustion (CVE-2026-87768)
Adding seconds can trigger a per-day loop in the Perl module; 0.8.1 is the fixed version named in the notice.
CPU exhaustion in DateTime::Lite before 0.8.1
DateTime::Lite for Perl walks day boundaries one day at a time when adding seconds, including both the XS code and the pure-Perl fallback. On an object with a non-floating time zone, add(seconds => $n) runs about |$n|/86400 iterations with no limit on $n. Anyone who can choose that value can keep the process busy as long as they want. Versions before 0.8.1 are affected.
What to do: Upgrade DateTime::Lite to 0.8.1.
| Product | Affected | Fixed in |
|---|---|---|
| DateTime::Lite | before 0.8.1 | 0.8.1 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
DateTime::Lite versions before 0.8.1 for Perl allow CPU exhaustion via a per-day loop when adding seconds. _normalize_leap_seconds crosses day boundaries one day at a time, so add(seconds => $n) on an object with a non-floating time zone takes about |$n|/86400 iterations, and nothing limits $n. The XS implementation and the pure-Perl fallback both have the loop. An attacker who controls the number of seconds added can keep the process busy for as long as they choose.
Adding seconds can trigger a per-day loop in the Perl module; 0.8.1 is the fixed version named in the notice.
Today 1.5K readers · 2.4K views · 768 reads · all time 189K views