Skip to content

Inefficient regular expression complexity in luxon.js

High
icambron published GHSA-3xq5-wjfh-ppjc Jan 4, 2023

Package

npm luxon.js (npm)

Affected versions

1.x <= 1.28.0, 2.x <= 2.5.1, 3.x <= 3.2.0

Patched versions

1.28.1, 2.5.2, 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 GHSA-wc69-rhjr-hc9g

Workarounds

Limit the length of the input.

References

There is an excellent writeup of the same issue in Moment: moment/moment#6015 (comment)

Details

DateTime.fromRFC2822("(".repeat(500000)) takes a couple minutes to complete.

Severity

High

CVE ID

CVE-2023-22467

Weaknesses