CVE-2026-84469
fastify vulnerable to request validation bypass via skipped boolean false schemas
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
fastify vulnerable to request validation bypass via skipped boolean false schemas
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.
- Record
CVE-2026-84469- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
EUVDEUVD-2026-70989
7.5
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.
- Record
EUVD-2026-70989- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-hwr6-493r-vm6h
7.5
fastify vulnerable to request validation bypass via skipped boolean false schemas
Impact
Fastify decided whether to validate a request part by checking its schema for JavaScript truthiness. JSON Schema Draft 7 defines the boolean false as a valid schema that rejects every instance, but because false is falsy, a route that set body, querystring, params, or headers to false had that part left uncompiled: no validator was attached and the request reached the handler. An application that used false as a deny-all schema to make a route unreachable was therefore fully bypassed, and an unauthenticated remote client could reach the handler with any input. The same applied to the documented query alias for querystring. This is a complete bypass rather than a weak-schema issue, since false is the strongest JSON Schema assertion and must always fail.
Patches
Request-part schemas are now selected by an explicit presence check rather than truthiness, so a boolean false (or true) schema is compiled and enforced, including through the query alias. Patched in fastify 5.12.2. The fix is also included in the 6.0.0 release.
Workarounds
If upgrading is not immediately possible, express a deny-all request schema with an always-failing object schema instead of the boolean false (for example { "not": {} }), or reject the request in an onRequest hook.
- Record
GHSA-hwr6-493r-vm6h- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
NVD
7.5
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.
- Record
CVE-2026-84469- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
OSV
7.5
fastify vulnerable to request validation bypass via skipped boolean false schemas
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.
- Record
CVE-2026-84469- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
OSVGHSA-hwr6-493r-vm6h
7.5
fastify vulnerable to request validation bypass via skipped boolean false schemas
Impact
Fastify decided whether to validate a request part by checking its schema for JavaScript truthiness. JSON Schema Draft 7 defines the boolean false as a valid schema that rejects every instance, but because false is falsy, a route that set body, querystring, params, or headers to false had that part left uncompiled: no validator was attached and the request reached the handler. An application that used false as a deny-all schema to make a route unreachable was therefore fully bypassed, and an unauthenticated remote client could reach the handler with any input. The same applied to the documented query alias for querystring. This is a complete bypass rather than a weak-schema issue, since false is the strongest JSON Schema assertion and must always fail.
Patches
Request-part schemas are now selected by an explicit presence check rather than truthiness, so a boolean false (or true) schema is compiled and enforced, including through the query alias. Patched in fastify 5.12.2. The fix is also included in the 6.0.0 release.
Workarounds
If upgrading is not immediately possible, express a deny-all request schema with an always-failing object schema instead of the boolean false (for example { "not": {} }), or reject the request in an onRequest hook.
- Record
GHSA-hwr6-493r-vm6h- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N - Weakness
- CWE-20
- Updated
- 2026-11-02
Show 8 moreShow less
OSVCLSA-2026-1790854816 No score
TuxCare security update for fastify (2 CVEs)
TuxCare rebuilt fastify to address 2 CVEs. Fixed in 5.12.1-tuxcare.1.
- Record
CLSA-2026-1790854816- Updated
- 2026-11-02
OSVCLSA-2026-1790857029 No score
TuxCare security update for fastify (2 CVEs)
TuxCare rebuilt fastify to address 2 CVEs. Fixed in 5.12.0-tuxcare.2.
- Record
CLSA-2026-1790857029- Updated
- 2026-11-02
OSVCLSA-2026-1791629281 No score
TuxCare security update for fastify (2 CVEs)
TuxCare rebuilt fastify to address 2 CVEs. Fixed in 3.29.5-tuxcare.7.
- Record
CLSA-2026-1791629281- Updated
- 2026-11-02
OSVCLSA-2026-1791667225 No score
TuxCare security update for fastify (1 CVE)
TuxCare rebuilt fastify to address 1 CVE. Fixed in 4.29.1-tuxcare.6.
- Record
CLSA-2026-1791667225- Updated
- 2026-11-02
OSVCLSA-2026-1791806519 No score
TuxCare security update for fastify (3 CVEs)
TuxCare rebuilt fastify to address 3 CVEs. Fixed in 5.7.4-tuxcare.5.
- Record
CLSA-2026-1791806519- Updated
- 2026-11-02
OSVCLSA-2026-1791806950 No score
TuxCare security update for fastify (2 CVEs)
TuxCare rebuilt fastify to address 2 CVEs. Fixed in 5.2.1-tuxcare.5.
- Record
CLSA-2026-1791806950- Updated
- 2026-11-02
OSVCLSA-2026-1791839080 No score
TuxCare security update for fastify (3 CVEs)
TuxCare rebuilt fastify to address 3 CVEs. Fixed in 5.11.3-tuxcare.6.
- Record
CLSA-2026-1791839080- Updated
- 2026-11-02
OSVCLSA-2026-1794060794 No score
TuxCare security update for fastify (6 CVEs)
TuxCare rebuilt fastify to address 6 CVEs. Fixed in 4.28.1-tuxcare.1.
- Record
CLSA-2026-1794060794- Updated
- 2026-11-07
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
fastifynpm |
before 5.12.2 | 5.12.2 |
fastifyTuxCare:npm From an advisory covering 2 CVEs |
5.12.1-tuxcare.0 up to 5.12.1-tuxcare.1, plus listed versions 5.12.1 |
5.12.1-tuxcare.1 |
fastifyTuxCare:npm From an advisory covering 2 CVEs |
5.12.0-tuxcare.0 up to 5.12.0-tuxcare.2, plus listed versions 5.12.05.12.0-tuxcare.1 |
5.12.0-tuxcare.2 |
fastifyTuxCare:npm From an advisory covering 2 CVEs |
3.29.5-tuxcare.0 up to 3.29.5-tuxcare.7, plus listed versions 3.29.53.29.5-tuxcare.13.29.5-tuxcare.23.29.5-tuxcare.33.29.5-tuxcare.43.29.5-tuxcare.53.29.5-tuxcare.6 |
3.29.5-tuxcare.7 |
fastifyTuxCare:npm |
4.29.1-tuxcare.0 up to 4.29.1-tuxcare.6, plus listed versions 4.29.14.29.1-tuxcare.14.29.1-tuxcare.24.29.1-tuxcare.34.29.1-tuxcare.44.29.1-tuxcare.5 |
4.29.1-tuxcare.6 |
fastifyTuxCare:npm From an advisory covering 3 CVEs |
5.7.4-tuxcare.0 up to 5.7.4-tuxcare.5, plus listed versions 5.7.45.7.4-tuxcare.15.7.4-tuxcare.25.7.4-tuxcare.35.7.4-tuxcare.4 |
5.7.4-tuxcare.5 |
fastifyTuxCare:npm From an advisory covering 2 CVEs |
5.2.1-tuxcare.0 up to 5.2.1-tuxcare.5, plus listed versions 5.2.15.2.1-tuxcare.15.2.1-tuxcare.25.2.1-tuxcare.35.2.1-tuxcare.4 |
5.2.1-tuxcare.5 |
fastifyTuxCare:npm From an advisory covering 3 CVEs |
5.11.3-tuxcare.0 up to 5.11.3-tuxcare.6, plus listed versions 5.11.35.11.3-tuxcare.15.11.3-tuxcare.25.11.3-tuxcare.35.11.3-tuxcare.45.11.3-tuxcare.5 |
5.11.3-tuxcare.6 |
fastifyTuxCare:npm From an advisory covering 6 CVEs |
4.28.1-tuxcare.0 up to 4.28.1-tuxcare.1, plus listed versions 4.28.1 |
4.28.1-tuxcare.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases | OSV | |
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-84469 is a high vulnerability (CVSS 7.5) in @clerk Fastify, published September 4, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.49%, the 42nd percentile. Fixed in fastify 5.12.2.
References
github.com/fastify/fastify/security/advisories/GHSA-hwr6-493r-vm6h
cna.openjsf.org/security-advisories.html
nvd.nist.gov/vuln/detail/CVE-2026-84469
github.com/fastify/fastify/commit/7de6e81697778f9f41bd327a3b1c5c9a0d9637b4
github.com/fastify/fastify/releases/tag/v5.12.2
github.com/advisories/GHSA-hwr6-493r-vm6h
github.com/CVEProject/cvelistV5/tree/main/cves/2026/84xxx/CVE-2026-84469.json
github.com/fastify/fastify