fastify — это быстрый и недорогой веб-фреймворк для Node.js. На версии fastify до 5.12.1 влияет обход проверки схемы, когда схема тела запроса нацелена на значение корневого примитива. Когда схема проверяет примитив верхнего уровня, например целое число, Ajv может привести строку JSON к ожидаемому типу во время проверки, но Fastify не заменяет тело корневого запроса приведенным значением, поэтому обработчик маршрута получает исходную непроверенную строку.
В результате запрос, который должен был не пройти проверку, может достичь логики приложения со значением, не удовлетворяющим схеме, что может подорвать проверки целостности и контроля доступа, основанные на проверенном типе. Пользователям следует обновить версию 5.12.1, чтобы устранить несоответствие. Никаких известных обходных путей не существует.
Показать оригинальное описание (EN)
fastify is a fast and low overhead web framework for Node.js. Versions of fastify before 5.12.1 are affected by a schema validation bypass when a request body schema targets a root primitive value. When the schema validates a top-level primitive such as an integer, Ajv can coerce a JSON string into the expected type during validation, but Fastify does not replace the root request body with the coerced value, so the route handler receives the original unvalidated string. As a result, a request that should have failed validation can reach application logic with a value that does not satisfy the schema, which can undermine integrity and access-control checks that rely on the validated type. Users should upgrade to fastify 5.12.1, which fixes the mismatch. No known workarounds are available.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Fastify Fastify
cpe:2.3:a:fastify:fastify:*:*:*:*:*:node.js:*:*
|
— |
5.12.1
|