Влияние: версии @fastify/http-proxy до 11.5.0 включительно не могут перезаписать префикс запроса, если сегмент префикса закодирован в URL-адресе. URL-адрес маршрутизатора Fastify декодирует пути для сопоставления маршрутов, но request.url сохраняет исходную закодированную форму, а на этапе перезаписи префикса используется литеральная строковая замена декодированного префикса. Таким образом, запрос, который кодирует один или несколько символов настроенного префикса, соответствует маршруту, но пропускает перезапись, поэтому необработанный закодированный путь пересылается в восходящий поток без изменений.
Затем восходящий поток декодирует путь и обслуживает его, позволяя злоумышленнику добраться до восходящих путей, которые прокси-сервер был настроен скрывать с помощью rewritePrefix, включая внутренние или административные конечные точки. Исправления: обновите до @fastify/http-proxy 11.6.0. Обходные пути: нет.
Показать оригинальное описание (EN)
Impact: @fastify/http-proxy versions up to and including 11.5.0 fail to rewrite the request prefix when the prefix segment is URL-encoded. Fastify's router URL-decodes paths for route matching, but request.url retains the original encoded form, and the prefix-rewrite step uses a literal string replace against the decoded prefix. A request that encodes one or more characters of the configured prefix therefore matches the route but skips the rewrite, so the raw encoded path is forwarded to the upstream unchanged. The upstream then decodes the path and serves it, letting an attacker reach upstream paths that the proxy was configured to hide via rewritePrefix, including internal or administrative endpoints. Patches: upgrade to @fastify/http-proxy 11.6.0. Workarounds: none.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Fastify Fastify\/Http-Proxy
cpe:2.3:a:fastify:fastify\/http-proxy:*:*:*:*:*:node.js:*:*
|
— |
11.6.0
|