{"id":"CVE-2024-45296","published":"2024-09-09T19:07:40Z","modified":"2025-01-24T20:03:07Z","title":"path-to-regexp outputs backtracking regular expressions","vendor":"pillarjs","product":"path-to-regexp","tier":"tail","description":{"text":"path-to-regexp turns path strings into a regular expressions. In certain cases, path-to-regexp will output a regular expression that can be exploited to cause poor performance. Because JavaScript is single threaded and regex matching runs on the main thread, poor performance will block the event loop and lead to a DoS. The bad regular expression is generated any time you have two parameters within a single segment, separated by something that is not a period (.). For users of 0.1, upgrade to 0.1.10. All other users should upgrade to 8.0.0.","provenance":"source","from":"CVE.org"},"cvss":{"score":7.5,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.00932,"percentile":0.60665,"provenance":"source"},"cwes":[{"id":"CWE-1333","name":"Inefficient Regular Expression Complexity"}],"references":[{"url":"https://github.com/pillarjs/path-to-regexp/security/advisories/GHSA-9wv6-86v2-598j","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/pillarjs/path-to-regexp/commit/29b96b4a1de52824e1ca0f49a701183cc4ed476f","tags":["x_refsource_MISC"]},{"url":"https://github.com/pillarjs/path-to-regexp/commit/60f2121e9b66b7b622cc01080df0aabda9eedee6","tags":["x_refsource_MISC"]},{"url":"https://security.netapp.com/advisory/ntap-20250124-0001/","tags":[]}],"priority":{"score":17.4,"factors":[{"name":"EPSS percentile","points":12.13},{"name":"CVSS severity","points":5.25}]},"vendorSlug":"pillarjs","affectedVersions":[{"vendor":"pillarjs","product":"path-to-regexp","versions":["< 0.1.10",">= 0.2.0, < 8.0.0"]}],"affected":[{"ecosystem":"npm","package":"path-to-regexp","vulnerableRanges":[">=0.2.0, <1.9.0","<0.1.10",">=7.0.0, <8.0.0",">=2.0.0, <3.3.0",">=4.0.0, <6.3.0"],"patched":["1.9.0","0.1.10","8.0.0","3.3.0","6.3.0"],"from":["GHSA-9wv6-86v2-598j"],"provenance":"source"}],"euvd":{"id":"EUVD-2024-2764","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-pillarjs-path-to-regexp-cve-2024-45296","children":[{"from":"CVE-2024-45296","to":"CVE-2024-45813","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-rrr8-f88r-h8q6","via":"reference","url":"https://github.com/advisories/GHSA-9wv6-86v2-598j"}]},{"from":"CVE-2024-45296","to":"CVE-2024-52798","relation":"incomplete-fix","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"incomplete-fix","quote":"This vulnerability exists because of an incomplete fix for CVE-2024-45296.","from":"CVE.org","in":"CVE-2024-52798"},{"kind":"version-step","provenance":"source","package":"npm:path-to-regexp","fromFixed":"0.1.10","toFixed":"0.1.12","daysApart":87},{"kind":"same-code","provenance":"machine","files":["index.js","test.js"],"commits":["https://github.com/pillarjs/path-to-regexp/commit/29b96b4a1de52824e1ca0f49a701183cc4ed476f","https://github.com/pillarjs/path-to-regexp/commit/60f2121e9b66b7b622cc01080df0aabda9eedee6","https://github.com/pillarjs/path-to-regexp/commit/f01c26a013b1889f0c217c643964513acf17f6a4"],"basis":"rarely changed file"},{"kind":"similar","provenance":"machine","score":0.69,"basis":"same product + CWE + description similarity"}]},{"from":"CVE-2024-45296","to":"CVE-2026-4867","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-9wv6-86v2-598j","via":"reference","url":"https://github.com/pillarjs/path-to-regexp/security/advisories/GHSA-9wv6-86v2-598j"},{"kind":"osv-related","provenance":"source","id":"GHSA-37ch-88jc-xwx2","via":"reference","url":"https://github.com/pillarjs/path-to-regexp/security/advisories/GHSA-37ch-88jc-xwx2"}]}],"packageHistory":[{"cve":"CVE-2024-52798","published":"2024-12-05","fixed":"0.1.12","kev":false},{"cve":"CVE-2026-4867","published":"2026-03-26","fixed":"0.1.13","kev":false},{"cve":"CVE-2024-45296","published":"2024-09-09","fixed":"8.0.0","kev":false},{"cve":"CVE-2026-4923","published":"2026-03-26","fixed":"8.4.0","kev":false,"link":{"from":"CVE-2024-45296","to":"CVE-2026-4923","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"npm:path-to-regexp","fromFixed":"8.0.0","toFixed":"8.4.0","daysApart":563}]}},{"cve":"CVE-2026-4926","published":"2026-03-26","fixed":"8.4.0","kev":false,"link":{"from":"CVE-2024-45296","to":"CVE-2026-4926","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"npm:path-to-regexp","fromFixed":"8.0.0","toFixed":"8.4.0","daysApart":563}]}}],"package":"npm:path-to-regexp"}}