{"cve":"CVE-2026-4867","nvd":{"published":"2026-03-26T17:16:42.983","modified":"2026-06-17T10:57:21.827","status":"Analyzed","description":"Impact:\n\nA bad regular expression is generated any time you have three or more parameters within a single segment, separated by something that is not a period (.). For example, /:a-:b-:c or /:a-:b-:c-:d. The backtrack protection added in path-to-regexp@0.1.12 only prevents ambiguity for two parameters. With three or more, the generated lookahead does not block single separator characters, so capture groups overlap and cause catastrophic backtracking.\n\nPatches:\n\nUpgrade to path-to-regexp@0.1.13\n\nCustom regex patterns in route definitions (e.g., /:a-:b([^-/]+)-:c([^-/]+)) are not affected because they override the default capture group.\n\nWorkarounds:\n\nAll versions can be patched by providing a custom regular expression for parameters after the first in a single segment. As long as the custom regular expression does not match the text before the parameter, you will be safe. For example, change /:a-:b-:c to /:a-:b([^-/]+)-:c([^-/]+).\n\nIf paths cannot be rewritten and versions cannot be upgraded, another alternative is to limit the URL length.","cvss_v4":null,"cvss_v3":{"version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","score":7.5},"cwes":["CWE-1333"],"references":["https://blakeembrey.com/posts/2024-09-web-redos","https://cna.openjsf.org/security-advisories.html","https://github.com/advisories/GHSA-9wv6-86v2-598j"],"products":["pillarjs:path-to-regexp"],"source":"nvd","synced_at":"2026-10-19T22:28:18.033120106+00:00"},"epss":{"cve":"CVE-2026-4867","score":0.00515,"percentile":0.43912,"date":"2026-10-31"},"kev":null,"osv":[{"id":"GHSA-37ch-88jc-xwx2","url":"https://osv.dev/vulnerability/GHSA-37ch-88jc-xwx2","summary":"path-to-regexp vulnerable to Regular Expression Denial of Service via multiple route parameters","modified":"2026-09-10T03:50:36.768786245Z","packages":[{"ecosystem":"npm","name":"path-to-regexp","purl":"pkg:npm/path-to-regexp","ranges":["<0.1.13"],"fixed":["0.1.13"]}]},{"id":"GHSA-9wv6-86v2-598j","url":"https://osv.dev/vulnerability/GHSA-9wv6-86v2-598j","summary":"path-to-regexp outputs backtracking regular expressions","modified":"2026-09-10T03:50:18.832560863Z","packages":[{"ecosystem":"npm","name":"path-to-regexp","purl":"pkg:npm/path-to-regexp","ranges":[">=0.2.0 <1.9.0"],"fixed":["1.9.0"]},{"ecosystem":"npm","name":"path-to-regexp","purl":"pkg:npm/path-to-regexp","ranges":["<0.1.10"],"fixed":["0.1.10"]},{"ecosystem":"npm","name":"path-to-regexp","purl":"pkg:npm/path-to-regexp","ranges":[">=7.0.0 <8.0.0"],"fixed":["8.0.0"]},{"ecosystem":"npm","name":"path-to-regexp","purl":"pkg:npm/path-to-regexp","ranges":[">=2.0.0 <3.3.0"],"fixed":["3.3.0"]},{"ecosystem":"npm","name":"path-to-regexp","purl":"pkg:npm/path-to-regexp","ranges":[">=4.0.0 <6.3.0"],"fixed":["6.3.0"]}]}],"attribution":["This product uses the NVD API but is not endorsed or certified by the NVD.","EPSS scores: FIRST Exploit Prediction Scoring System, https://www.first.org/epss","Known exploited vulnerabilities: CISA Known Exploited Vulnerabilities Catalog, https://www.cisa.gov/known-exploited-vulnerabilities-catalog","Package advisories: OSV (https://osv.dev), from the GitHub Advisory Database, PyPA, Go, RustSec and other ecosystem databases, under CC-BY 4.0 or CC0","CVE records: the CVE Program's CVE List (https://www.cve.org), under its terms of use (https://www.cve.org/Legal/TermsOfUse). CVE is a registered trademark of The MITRE Corporation; this product is not affiliated with the CVE Program."]}