GitHub Advisoryadvisory · npm

GHSA-3xq5-wjfh-ppjc Luxon Inefficient Regular Expression Complexity vulnerability

HIGH Published 2023-01-09 Modified 2024-02-12 Official page ↗
Aliases
CVE-2023-22467
Ecosystem
npm
Packages
luxon
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-1333
Reviewed
2023-01-09

Affected packages

• npm luxon: >= 1.0.0, < 1.28.1 → fixed in 1.28.1 • npm luxon: >= 2.0.0, < 2.5.2 → fixed in 2.5.2 • npm luxon: >= 3.0.0, < 3.2.1 → fixed in 3.2.1

Description

Impact Luxon's `DateTime.fromRFC2822() has quadratic (N^2) complexity on some specific inputs. This causes a noticeable slowdown for inputs with lengths above 10k characters. Users providing untrusted data to this method are therefore vulnerable to (Re)DoS attacks. This is the same bug as Moment's https://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g Workarounds Limit the length of the input. References There is an excellent writeup of the same issue in Moment: https://github.com/moment/moment/pull/6015#issuecomment-1152961973 Details `DateTime.fromRFC2822("(".repeat(500000))` takes a couple minutes to complete.

Related

Alias · CVE (1)

  • CVE-2023-22467 Luxon is a library for working with dates and times in JavaScript. vulnerability

Weakness · CWE (1)

  • CWE-1333 Inefficient Regular Expression Complexity weakness

References