{"id":"CVE-2023-22467","aliases":["CLSA-2026-1783731811","CLSA-2026-1786539981","EUVD-2023-0326","GHSA-3xq5-wjfh-ppjc","ROOT-APP-NPM-CVE-2023-22467"],"status":"published","title":"luxon.js inefficient regular expression complexity vulnerability","description":"Luxon is a library for working with dates and times in JavaScript. On the 1.x branch prior to 1.38.1, the 2.x branch prior to 2.5.2, and the 3.x branch on 3.2.1, 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 issue also appears in Moment as CVE-2022-31129. Versions 1.38.1, 2.5.2, and 3.2.1 contain patches for this issue. As a workaround, limit the length of the input.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.01852,"percentile":0.79313,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-1333"],"published":"2023-01-04T21:52:14Z","modified":"2026-10-28T02:31:15Z","fixes":[{"ecosystem":"npm","package":"luxon","fixed_in":["2.5.2","3.2.1","1.28.1"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"luxon","fixed_in":["2.3.0-tuxcare.1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/validator","fixed_in":["7.2.0-root.io.1"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"@rootio/luxon","fixed_in":["1.28.0-root.io.1","1.28.0-root.io.2"],"sources":["osv"]},{"ecosystem":"Root:npm","package":"luxon","fixed_in":["1.28.0-aikido.2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"luxon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.0.0"},{"fixed":"2.5.2"}]}]},{"source":"ghsa","ecosystem":"npm","package":"luxon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0"},{"fixed":"3.2.1"}]}]},{"source":"ghsa","ecosystem":"npm","package":"luxon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.0"},{"fixed":"1.28.1"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"luxon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.0-tuxcare.0"},{"fixed":"2.3.0-tuxcare.1"}]}],"versions":["2.3.0"]},{"source":"osv","ecosystem":"npm","package":"luxon","ranges":[{"type":"SEMVER","events":[{"introduced":"1.0.0"},{"fixed":"1.28.1"}]}]},{"source":"osv","ecosystem":"npm","package":"luxon","ranges":[{"type":"SEMVER","events":[{"introduced":"2.0.0"},{"fixed":"2.5.2"}]}]},{"source":"osv","ecosystem":"npm","package":"luxon","ranges":[{"type":"SEMVER","events":[{"introduced":"3.0.0"},{"fixed":"3.2.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/validator","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"7.2.0-root.io.1"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"@rootio/luxon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.28.0-root.io.1"},{"fixed":"1.28.0-root.io.2"}]}]},{"source":"osv","ecosystem":"Root:npm","package":"luxon","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.28.0-aikido.2"}]}]}],"products":[{"vendor":"moment","product":"luxon"},{"vendor":"momentjs","product":"luxon"}],"references":[{"url":"https://github.com/moment/luxon/security/advisories/GHSA-3xq5-wjfh-ppjc","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g","tags":["x_refsource_MISC","x_transferred","Not Applicable","Third Party Advisory","advisory","web"]},{"url":"https://github.com/moment/moment/pull/6015#issuecomment-1152961973","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://github.com/moment/luxon/commit/5ab3bf64a10da929a437629cdb2f059bb83212bf","tags":["x_refsource_MISC","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4LIVOASKBQH7FEUI5RWM3SOHR6VK7ZZR/","tags":["x_transferred","web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/44I3WAJKYXDLOVYRGMHAUXMIV4SPFXDZ/","tags":["x_transferred","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-22467","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-3xq5-wjfh-ppjc"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/22xxx/CVE-2023-22467.json","tags":["advisory"]},{"url":"https://github.com/moment/luxon","tags":["package"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/44I3WAJKYXDLOVYRGMHAUXMIV4SPFXDZ","tags":["web"]},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4LIVOASKBQH7FEUI5RWM3SOHR6VK7ZZR","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2023-22467","title":"luxon.js inefficient regular expression complexity vulnerability","description":"Luxon is a library for working with dates and times in JavaScript. On the 1.x branch prior to 1.38.1, the 2.x branch prior to 2.5.2, and the 3.x branch on 3.2.1, 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 issue also appears in Moment as CVE-2022-31129. Versions 1.38.1, 2.5.2, and 3.2.1 contain patches for this issue. As a workaround, limit the length of the input.","status":"published","published":"2023-01-04T21:52:14.329Z","modified":"2025-02-13T16:43:52.699Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:35:15.779187Z"}],"euvd":[{"id":"EUVD-2023-0326","description":"Luxon is a library for working with dates and times in JavaScript. On the 1.x branch prior to 1.38.1, the 2.x branch prior to 2.5.2, and the 3.x branch on 3.2.1, 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 issue also appears in Moment as CVE-2022-31129. Versions 1.38.1, 2.5.2, and 3.2.1 contain patches for this issue. As a workaround, limit the length of the input.","status":"published","published":"2023-01-04T21:52:14Z","modified":"2025-02-13T16:43:52Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-03T00:03:51.372924Z"}],"ghsa":[{"id":"GHSA-3xq5-wjfh-ppjc","title":"Luxon Inefficient Regular Expression Complexity vulnerability","description":"# Impact\nLuxon'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.\n\nThis is the same bug as Moment's https://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g\n\n# Workarounds\nLimit the length of the input.\n\n# References\nThere is an excellent writeup of the same issue in Moment: https://github.com/moment/moment/pull/6015#issuecomment-1152961973\n\n# Details\n`DateTime.fromRFC2822(\"(\".repeat(500000))` takes a couple minutes to complete.","status":"published","published":"2023-01-09T14:10:49Z","modified":"2024-02-12T06:30:33Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:37:37.394986Z"}],"nvd":[{"id":"CVE-2023-22467","description":"Luxon is a library for working with dates and times in JavaScript. On the 1.x branch prior to 1.38.1, the 2.x branch prior to 2.5.2, and the 3.x branch on 3.2.1, 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 issue also appears in Moment as CVE-2022-31129. Versions 1.38.1, 2.5.2, and 3.2.1 contain patches for this issue. As a workaround, limit the length of the input.","status":"published","published":"2023-01-04T22:15:09.357Z","modified":"2026-06-17T05:35:31.1Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T14:07:45.305824Z"}],"osv":[{"id":"CVE-2023-22467","title":"luxon.js inefficient regular expression complexity vulnerability","description":"Luxon is a library for working with dates and times in JavaScript. On the 1.x branch prior to 1.38.1, the 2.x branch prior to 2.5.2, and the 3.x branch on 3.2.1, 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 issue also appears in Moment as CVE-2022-31129. Versions 1.38.1, 2.5.2, and 3.2.1 contain patches for this issue. As a workaround, limit the length of the input.","status":"published","published":"2023-01-04T21:52:14.329Z","modified":"2026-10-28T02:31:15.081387377Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:44:30.334753Z"},{"id":"GHSA-3xq5-wjfh-ppjc","title":"Luxon Inefficient Regular Expression Complexity vulnerability","description":"# Impact\nLuxon'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.\n\nThis is the same bug as Moment's https://github.com/moment/moment/security/advisories/GHSA-wc69-rhjr-hc9g\n\n# Workarounds\nLimit the length of the input.\n\n# References\nThere is an excellent writeup of the same issue in Moment: https://github.com/moment/moment/pull/6015#issuecomment-1152961973\n\n# Details\n`DateTime.fromRFC2822(\"(\".repeat(500000))` takes a couple minutes to complete.","status":"published","published":"2023-01-09T14:10:49Z","modified":"2026-02-04T04:08:25.579357Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-1333"],"updated_at":"2026-11-02T15:46:36.092962Z"},{"id":"CLSA-2026-1783731811","title":"TuxCare security update for luxon (1 CVE)","description":"TuxCare rebuilt luxon to address 1 CVE. Fixed in 2.3.0-tuxcare.1.","status":"published","published":"2026-08-04T14:52:43Z","modified":"2026-10-15T09:48:03.794511001Z","updated_at":"2026-11-02T15:43:46.151924Z"},{"id":"CLSA-2026-1786539981","title":"TuxCare security update for dompurify (10 CVEs)","description":"TuxCare rebuilt dompurify to address 10 CVEs. Fixed in 2.3.0-tuxcare.1.","status":"withdrawn","published":"2026-08-12T13:06:21Z","modified":"2026-10-26T13:21:31Z","updated_at":"2026-11-02T15:43:46.850893Z"},{"id":"ROOT-APP-NPM-CVE-2023-22467","title":"CVE-2023-22467 in @rootio/validator - Patched by Root","description":"Root has patched CVE-2023-22467 in the @rootio/validator package for Root:npm. Multiple fixed versions available.","status":"published","published":"2026-06-04T20:43:14Z","modified":"2026-06-05T01:30:30.137689769Z","updated_at":"2026-11-02T15:53:27.362922Z"}]}}
