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.
Published: 2026-09-04
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Privilege Escalation Due to Header Validation Bypass
Action: Immediate Patch
AI Analysis

Impact

Fastify implements case‑insensitive handling of HTTP headers by lowercasing header names in a route's schema, but its conversion is incomplete. The properties keys and the root‑level required array are lowercased, yet the names used inside the JSON Schema Draft 7 dependencies keyword remain unchanged. Because Node stores incoming header names in lowercase, a dependency that requires, for example, an authentication header whenever a privileged‑mode header is present never matches, and the requisite header check is silently omitted. An attacker can therefore send a request containing the privileged header while omitting the intended authentication header, allowing the server to treat the request as authenticated and to execute code in privileged mode.

Affected Systems

Vendors impacted include fastify:fastify. The issue applies to all fastify releases prior to version 5.12.2, as newer releases have addressed the header normalization bug.

Risk and Exploitability

The CVSS score of 7.5 reflects a high severity vulnerability that enables an unauthenticated remote client to gain elevated privileges by bypassing authentication logic. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. The most probable attack vector involves a remote client crafting request headers that trigger the privileged branch while omitting the required authentication header; this bypass can be achieved without any special local access or privileged execution.

Generated by OpenCVE AI on September 4, 2026 at 13:26 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade fastify to version 5.12.2 or later.
  • If an upgrade is not immediately possible, modify application logic to enforce authentication before allowing privileged‑mode headers or remove the vulnerable dependencies from schemas.
  • Audit existing route schemas to confirm that all required authentication headers are present and that header normalization is correctly applied.

Generated by OpenCVE AI on September 4, 2026 at 13:26 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 15 Sep 2026 20:00:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:fastify:fastify:*:*:*:*:*:node.js:*:*

Fri, 04 Sep 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 04 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
First Time appeared Fastify
Fastify fastify
Weaknesses CWE-1289
Vendors & Products Fastify
Fastify fastify
References
Metrics threat_severity

None

threat_severity

Important


Fri, 04 Sep 2026 10:45:00 +0000

Type Values Removed Values Added
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.
Title fastify vulnerable to header validation bypass via incomplete schema case normalization
Weaknesses CWE-178
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: openjs

Published:

Updated: 2026-09-04T16:06:04.123Z

Reserved: 2026-09-01T18:21:51.906Z

Link: CVE-2026-84428

cve-icon Vulnrichment

Updated: 2026-09-04T16:05:37.046Z

cve-icon NVD

Status : Analyzed

Published: 2026-09-04T11:17:19.317

Modified: 2026-09-15T19:54:32.420

Link: CVE-2026-84428

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-04T10:24:27Z

Links: CVE-2026-84428 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T13:30:05Z

Weaknesses
  • CWE-1289

    Improper Validation of Unsafe Equivalence in Input

  • CWE-178

    Improper Handling of Case Sensitivity