CVE-2026-84469
largeValidation bypass in fastify: boolean false deny-all route schemas are ignored
Fastify versions before 5.12.2 use JavaScript truthiness to decide whether to compile a request schema, so the JSON Schema boolean false, which Draft 7 defines as a valid schema that rejects every instance, is treated as if no schema were configured. When an application sets false as a route's body, querystring, params, or headers schema to deny all input, fastify compiles no validator and runs the route handler on any request. An unauthenticated remote attacker can therefore reach handlers that the deny-all schema was intended to make unreachable, potentially causing unauthorized state changes or executing operations that were supposed to be disabled (integrity-only impact per the CVSS score). Any fastify-based application on an affected version that uses boolean false schemas is exposed; the real-world impact depends on what those handlers do. No public proof of concept is known, the flaw is not in CISA KEV, and EPSS currently estimates a 0.3% probability of exploitation within 30 days, indicating no known exploitation at this time.
What to do: Upgrade fastify to 5.12.2 or later. Audit route definitions for boolean false used as the body, querystring, params, or headers schema, and verify whether any resulting handlers are reachable without authentication; as an interim mitigation, replace false with an always-rejecting JSON Schema or add explicit validation before invoking the handler.
| fastify (Node.js web framework) | all versions before 5.12.2 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
fastify versions before 5.12.2 decide whether to compile a request schema based on JavaScript truthiness, but JSON Schema Draft 7 defines the boolean false as a valid schema that rejects every instance. When an application assigns false to a route's body, querystring, params, or headers schema to deny all input, fastify treats it as a missing schema, compiles no validator, and runs the route handler on any request. An unauthenticated remote client can therefore reach a handler that a valid deny-all schema was intended to make unreachable, a complete validation bypass that can lead to unauthorized state changes or execution of disabled operations. Users should upgrade to fastify 5.12.2 or later.
- Vendors
- fastify
- Products
- fastify
- Weakness
- CWE-20
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
In the news0 stories
No ingested article mentions this CVE yet.