CVE-2026-4867
Fixed in a distro release EPSS <1%CVSS 7.5
Impact: A 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. Patches: Upgrade to path-to-regexp@0.1.13 Custom regex patterns in route definitions (e.g., /:a-:b([^-/]+)-:c([^-/]+)) are not affected because they override the default capture group. Workarounds: All 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([^-/]+). If paths cannot be rewritten and versions cannot be upgraded, another alternative is to limit the URL length.
Products: path-to-regexp
Fixed upstream
| Ecosystem | Package | Fixed in |
|---|---|---|
| npm | path-to-regexp | 0.1.13 |
| npm | path-to-regexp | 1.9.0 |
| npm | path-to-regexp | 0.1.10 |
| npm | path-to-regexp | 8.0.0 |
| npm | path-to-regexp | 3.3.0 |
| npm | path-to-regexp | 6.3.0 |
Distro releases
| Release | Package | Fixed in |
|---|---|---|
| Chainguard | arangodb-3.11 | 3.11.14.4-r11 |
| Chainguard | arangodb-3.12 | 3.12.9.4-r6 |
| Chainguard | argo-workflows-ui-3.6 | 3.6.19-r5 |
| Chainguard | argo-workflows-ui-3.7 | 3.7.12-r2 |
| Chainguard | argo-workflows-ui-4.0 | 4.0.3-r2 |
| Chainguard | gitlab-rails-ce-18.1 | 18.1.6-r26 |
| Chainguard | gitlab-rails-ce-18.10 | no fix |
| Chainguard | gitlab-rails-ce-18.11 | 18.11.13-r0 |
| Chainguard | gitlab-rails-ce-18.5 | no fix |
| Chainguard | gitlab-rails-ce-18.6 | no fix |
| Chainguard | gitlab-rails-ce-18.7 | no fix |
| Chainguard | gitlab-rails-ce-18.8 | no fix |
| Chainguard | gitlab-rails-ce-18.9 | no fix |
| Chainguard | gitlab-rails-ce-19.0 | 19.0.3-r1 |
| Chainguard | gitlab-rails-ce-19.0 | 19.0.10-r0 |
| Chainguard | gitlab-rails-ce-19.1 | 19.1.7-r6 |
| Chainguard | gitlab-rails-ce-19.2 | 19.2.5-r2 |
| Chainguard | gitlab-rails-ce-19.3 | 19.3.1-r6 |
| Chainguard | gitlab-rails-ce-fips-18.1 | 18.1.6-r15 |
| Chainguard | gitlab-rails-ce-fips-18.1 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.10 | 18.10.8-r8 |
| Chainguard | gitlab-rails-ce-fips-18.11 | 18.11.12-r2 |
| Chainguard | gitlab-rails-ce-fips-18.5 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.6 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.7 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.8 | no fix |
| Chainguard | gitlab-rails-ce-fips-18.9 | 18.9.8-r8 |
| Chainguard | gitlab-rails-ce-fips-19.0 | 19.0.9-r3 |
| Chainguard | gitlab-rails-ce-fips-19.1 | 19.1.1-r1 |
| Chainguard | gitlab-rails-ce-fips-19.1 | 19.1.7-r7 |
| Chainguard | gitlab-rails-ce-fips-19.2 | 19.2.5-r2 |
| Chainguard | gitlab-rails-ce-fips-19.3 | 19.3.1-r3 |
| Chainguard | json-server | 0.17.4-r6 |
| Chainguard | katib-earlystopping | 0.19.0-r31 |
| Chainguard | katib-suggestion-goptuna-compat | no fix |
| Chainguard | katib-suggestion-hyperband | 0.19.0-r31 |
| Chainguard | katib-suggestion-hyperopt | 0.19.0-r31 |
| Chainguard | katib-suggestion-hyperopt | 0.19.0-r40 |
| Chainguard | katib-suggestion-nas-darts | 0.19.0-r31 |
| Chainguard | katib-suggestion-nas-enas | 0.19.0-r31 |
| Chainguard | katib-suggestion-optuna-enas | 0.19.0-r31 |
| Chainguard | katib-suggestion-pbt-enas | 0.19.0-r31 |
| Chainguard | katib-suggestion-skopt-enas | 0.19.0-r31 |
| Chainguard | katib-tfevent-metricscollector | 0.19.0-r31 |
| Chainguard | kubeflow-centraldashboard | 1.10.0-r18 |
| Chainguard | kubeflow-pipelines-frontend | 2.16.0-r12 |
| Chainguard | kubescape-grype-offline-db | 0_git20250804-r1 |
| Chainguard | langfuse-2 | 2.95.12-r17 |
| Chainguard | langfuse-2-worker | 2.95.12-r17 |
| Chainguard | langfuse-fips-2 | 2.95.12-r20 |
| Chainguard | langfuse-fips-2-worker | 2.95.12-r20 |
| Chainguard | pelias-api | 7.6.0-r5 |
| Chainguard | py3.10-captum | 0.9.0-r1 |
| Chainguard | py3.11-captum | 0.9.0-r1 |
| Chainguard | py3.12-captum | 0.9.0-r1 |
| Chainguard | py3.13-captum | 0.9.0-r1 |
| Chainguard | sqlpad | 7.5.7-r17 |
| Chainguard | thingsboard-tb-js-executor-fips | 4.3.1.1-r0 |
| Chainguard | thingsboard-tb-web-ui-fips | 4.3.1.1-r0 |
| Chainguard | wazuh-dashboard-security-plugin | 4.14.6-r4 |
| Chainguard | wazuh-dashboard-security-plugin-fips | 4.14.6-r1 |
| Debian 12 | node-path-to-regexp | 1.0.1-1 |
| Debian 13 | node-path-to-regexp | 1.0.1-1 |
| Debian 14 | node-path-to-regexp | 1.0.1-1 |
| Ubuntu 16.04 LTS | node-path-to-regexp | no fix |
| Ubuntu 18.04 LTS | node-path-to-regexp | no fix |
| Ubuntu 20.04 LTS | node-path-to-regexp | no fix |
| Wolfi | argo-workflows-ui-3.7 | 3.7.12-r2 |
| Wolfi | argo-workflows-ui-4.0 | 4.0.3-r2 |
| Wolfi | json-server | 0.17.4-r6 |
| Wolfi | katib-earlystopping | 0.19.0-r31 |
| Wolfi | katib-suggestion-goptuna-compat | no fix |
| Wolfi | katib-suggestion-hyperband | 0.19.0-r31 |
| Wolfi | katib-suggestion-hyperopt | 0.19.0-r40 |
| Wolfi | katib-suggestion-hyperopt | 0.19.0-r31 |
| Wolfi | katib-suggestion-nas-darts | 0.19.0-r31 |
| Wolfi | katib-suggestion-nas-enas | 0.19.0-r31 |
| Wolfi | katib-suggestion-optuna-enas | 0.19.0-r31 |
| Wolfi | katib-suggestion-pbt-enas | 0.19.0-r31 |
| Wolfi | katib-suggestion-skopt-enas | 0.19.0-r31 |
| Wolfi | katib-tfevent-metricscollector | 0.19.0-r31 |
| Wolfi | kubeflow-centraldashboard | 1.10.0-r18 |
| Wolfi | kubeflow-pipelines-frontend | 2.16.0-r12 |
| Wolfi | sqlpad | 7.5.7-r17 |