CVE-2026-84428: fastify vulnerable to header validation bypass via incomplete schema case normalization
Fastify lowercases header-schema property names before compiling the schema, because Node.js stores request header names in lowercase. That normalization was incomplete: it lowercased only top-level properties keys and the root required array, and did not lowercase the JSON Schema Draft 7 dependencies keyword (its trigger keys and dependent property names) or names in nested subschemas. As a result, a header schema that uses dependencies to require one header when another is present (for example X-Admin requiring X-Admin-Token) never matches the lowercased request headers, so the dependency assertion is silently skipped. An unauthenticated remote client can send the header that activates a privileged path while omitting the header the dependency was meant to require, bypassing a schema-enforced security control. The header schema is idiomatic, valid JSON Schema Draft 7, and no custom validator, malformed request, or misconfiguration is required.
References
- cna.openjsf.org/security-advisories.html
- github.com/advisories/GHSA-9q9j-q6p8-xq58
- github.com/fastify/fastify/commit/179619c8e99d54924309b9933402151ef9af37e0
- github.com/fastify/fastify/releases/tag/v5.12.2
- github.com/fastify/fastify/security/advisories/GHSA-9q9j-q6p8-xq58
- nvd.nist.gov/vuln/detail/CVE-2026-84428
Code Behaviors & Features
Detect and mitigate CVE-2026-84428 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →