Влияние:
При использовании нескольких подстановочных знаков в сочетании хотя бы с одним параметром может быть создано регулярное выражение, уязвимое для ReDoS. Эта уязвимость обратного отслеживания требует, чтобы второй подстановочный знак находился где-то кроме конца пути. Небезопасные примеры:
/*foo-*bar-:baz
/*a-:b-*c-:d
/x/*a-:b/*c/y
Безопасные примеры:
/*foo-:бар
/*foo-:bar-*baz
Патчи:
Обновите до версии 8.4.0.
Обходные пути:
Если вы используете несколько параметров с подстановочными знаками, вы можете проверить вывод регулярного выражения с помощью такого инструмента, как https://makenowjust-labs.github.io/recheck/playground/, чтобы убедиться, что путь уязвим.
Показать оригинальное описание (EN)
Impact: When using multiple wildcards, combined with at least one parameter, a regular expression can be generated that is vulnerable to ReDoS. This backtracking vulnerability requires the second wildcard to be somewhere other than the end of the path. Unsafe examples: /*foo-*bar-:baz /*a-:b-*c-:d /x/*a-:b/*c/y Safe examples: /*foo-:bar /*foo-:bar-*baz Patches: Upgrade to version 8.4.0. Workarounds: If you are using multiple wildcard parameters, you can check the regex output with a tool such as https://makenowjust-labs.github.io/recheck/playground/ to confirm whether a path is vulnerable.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Pillarjs Path-To-Regexp
cpe:2.3:a:pillarjs:path-to-regexp:*:*:*:*:*:node.js:*:*
|
8.0.0
|
8.4.0
|