fastify — это быстрый и недорогой веб-фреймворк для Node.js. Влияние: исправление для CVE-2026-3635 добавило защиту при чтении пересылаемого заголовка, используемого для получения значений хоста запроса, протокола, имени хоста, IP-адреса и ips, а также проверки адреса подключения. Эта защита правильно закрывает формы TrustProxy IP, CIDR и пользовательские функции, поскольку эти формы компилируются в предикаты, проверяющие адрес подключения.
Форма подсчета переходов, где параметр TrustProxy имеет числовое значение, компилируется в предикат, который структурно игнорирует адрес, поэтому защита всегда удовлетворяется при любом количестве переходов, равном одному или более. Приложения, настроенные с числовым значением TrustProxy, например, TrustProxy со значением 1 для одного обратного прокси-сервера, остаются уязвимыми: злоумышленник, который может напрямую связаться с источником Fastify, минуя фронтальный прокси-сервер, может подделать поля пересылаемого запроса точно так же, как в непропатченной версии. Класс воздействия соответствует родительскому CVE-2026-3635, включая внедрение хоста в сгенерированные URL-адреса, обход HTTPS-принуждения, обход защищенных файлов cookie и CSRF-источника, а также маршрутизацию на основе хоста и отравление кеша.
Затронутые версии - от 5.8.3 до 5.12.1, но не включая. Исправления: исправлено в fastify 5.12.1, где числовая форма TrustProxy отключена во время выполнения и удалена из объединения типов TypeScript. Обходные пути: перейдите на значение TrustProxy IP, CIDR или настраиваемой функции, которое проверяет адрес подключения, и убедитесь, что источник Fastify доступен только через цепочку доверенных прокси.
Показать оригинальное описание (EN)
fastify is a fast and low overhead web framework for Node.js. Impact: the fix for CVE-2026-3635 added a guard on the forwarded-header reads used to derive the request host, protocol, hostname, ip, and ips values, checking the connecting address. That guard closes the IP, CIDR, and custom-function forms of trustProxy correctly, because those forms compile to predicates that inspect the connecting address. The hop-count form, where trustProxy is set to a number, compiles to a predicate that structurally ignores the address, so the guard is always satisfied for any hop count of one or more. Applications configured with a numeric trustProxy value, such as trustProxy set to 1 for a single reverse proxy, remain vulnerable: an attacker who can reach the Fastify origin directly, bypassing the front-facing proxy, can spoof the forwarded request fields exactly as in the unpatched version. The impact class matches the parent CVE-2026-3635, including host injection in generated URLs, HTTPS-enforcement bypass, secure-cookie and CSRF-origin bypass, and host-based routing and cache poisoning. Affected versions are fastify from 5.8.3 up to but not including 5.12.1. Patches: patched in fastify 5.12.1, where the numeric form of trustProxy is disabled at runtime and removed from the TypeScript type union. Workarounds: migrate to an IP, CIDR, or custom-function trustProxy value that validates the connecting address, and ensure the Fastify origin is only reachable through the trusted proxy chain.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Fastify Fastify
cpe:2.3:a:fastify:fastify:*:*:*:*:*:node.js:*:*
|
5.8.3
|
5.12.1
|