CVE-2026-4867

HIGH CVSS 3.1: 7,5 EPSS 0.05%
Обновлено 16 апреля 2026
Pillarjs
Параметр Значение
CVSS 7,5 (HIGH)
Уязвимые версии до 0.1.13
Устранено в версии 0.1.13
Тип уязвимости CWE-1333 (Атака через регулярные выражения (ReDoS))
Поставщик Pillarjs
Публичный эксплойт Нет

Влияние: Плохое регулярное выражение генерируется каждый раз, когда у вас есть три или более параметров в одном сегменте, разделенных чем-то, кроме точки (.). Например, /:a-:b-:c или /:a-:b-:c-:d. Защита от возврата, добавленная в path-to-regexp@0.1.12, предотвращает неоднозначность только для двух параметров.

При трех и более сгенерированный просмотр вперед не блокирует одиночные символы-разделители, поэтому группы захвата перекрываются и вызывают катастрофическое обратное отслеживание. Патчи: Обновите до path-to-regexp@0.1.13. Пользовательские шаблоны регулярных выражений в определениях маршрутов (например, /:a-:b([^-/]+)-:c([^-/]+)) не затрагиваются, поскольку они переопределяют группу захвата по умолчанию.

Обходные пути: Все версии можно исправить, предоставив собственное регулярное выражение для параметров после первого в одном сегменте. Пока пользовательское регулярное выражение не соответствует тексту перед параметром, вы будете в безопасности. Например, измените /:a-:b-:c на /:a-:b([^-/]+)-:c([^-/]+).

Если пути не могут быть переписаны, а версии не могут быть обновлены, другой альтернативой является ограничение длины URL-адреса.

Показать оригинальное описание (EN)

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.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1

Уязвимые продукты 1

Конфигурация От (включительно) До (исключительно)
Pillarjs Path-To-Regexp
cpe:2.3:a:pillarjs:path-to-regexp:*:*:*:*:*:node.js:*:*
0.1.13

Связанные уязвимости