Skip to content
OpenAdvisories

Description

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.

Affected products

VendorProductAffectedFixed
path-to-regexp path-to-regexp < 0.1.13 0.1.13

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 node-path-to-regexp 1.0.1-1 —
Debian 13 node-path-to-regexp 1.0.1-1 —
Debian 12 node-path-to-regexp 1.0.1-1 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling argo-workflows-ui-4.0 4.0.3-r2 —
Wolfi rolling json-server 0.17.4-r6 —
Wolfi rolling katib-earlystopping +8 0.19.0-r31 —
Wolfi rolling katib-suggestion-goptuna-compat 0.19.0-r40 —
Wolfi rolling kubeflow-centraldashboard 1.10.0-r18 —
Wolfi rolling kubeflow-pipelines-frontend 2.16.0-r12 —
Wolfi rolling sqlpad 7.5.7-r17 —

References