GitHub Advisoryadvisory · npm
GHSA-3xq5-wjfh-ppjc Luxon Inefficient Regular Expression Complexity vulnerability
HIGH
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
- https://github.com/moment/luxon/security/advisories/GHSA-3xq5-wjfh-ppjc web
- https://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g web
- https://nvd.nist.gov/vuln/detail/CVE-2023-22467 advisory
- https://github.com/moment/moment/pull/6015#issuecomment-1152961973 web
- https://github.com/moment/luxon/commit/5ab3bf64a10da929a437629cdb2f059bb83212bf web
- https://github.com/moment/luxon package
- https://lists.fedoraproject.org/archives/list/[email protected]/message/44I3WAJKYXDLOVYRGMHAUXMIV4SPFXDZ web
- https://lists.fedoraproject.org/archives/list/[email protected]/message/4LIVOASKBQH7FEUI5RWM3SOHR6VK7ZZR web