CVE-2026-84428

fastify vulnerable to header validation bypass via incomplete schema case normalization

State
Published
Severity
7.5 High
Published
Sep 4, 2026
Updated
Sep 4, 2026
Reserved
Sep 1, 2026

Read the record on cve.org

Description

fastify versions before 5.12.2 implement the case-insensitive nature of HTTP header names by lowercasing names in a route's header schema before compiling it, but the transformation is incomplete: it lowercases the properties keys and the root-level required array, and does not lowercase the trigger and dependent names inside the JSON Schema Draft 7 dependencies keyword. Because Node stores request header names in lowercase, a canonical-case dependency such as requiring an authentication header whenever a privileged-mode header is present never matches, and the presence assertion is silently skipped. An unauthenticated remote client can therefore send the header that activates a privileged branch while omitting the header the dependency was meant to require, bypassing the conditional check. Users should upgrade to fastify 5.12.2 or later.

Scores

CVSSScoreVectorSource
3.17.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:Nopenjs

Weaknesses

  • CWE-178 Improper Handling of Case Sensitivity

Affected Products

ProductVersions
fastifyfastify
  • before 5.12.2Affected
  • 5.12.2Not affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.