Skip to main content

@fastify/middie CVE-2026-33804

| EUVDEUVD-2026-23235 HIGH
Interpretation Conflict (CWE-436)
2026-04-16 openjs GHSA-v9ww-2j6r-98q6
7.4
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify Fastify app using middie auth middleware
  2. Delivery
    Craft request with duplicate leading slash (//admin/secret)
  3. Exploit
    Router normalizes path while middie skips middleware
  4. Execution
    Bypass authentication/authorization check
  5. Impact
    Access protected route and data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service Interpretation consistency
Exploitation Conditions

Requires the target Fastify application to have the deprecated top-level ignoreDuplicateSlashes option enabled via fastify({ ignoreDuplicateSlashes: true }) AND to enforce access control through @fastify/middie <= 9.3.1 middleware bound to specific paths. The concrete exploitation primitive is sending an HTTP request whose path contains duplicate leading slashes (e.g. //admin/secret) so the Fastify router normalizes it while middie does not. Limiting factors: the deprecated option is off by default and not present in typical modern configs; applications that instead use routerOptions: { ignoreDuplicateSlashes: true } are entirely unaffected; and exploitation only yields access to resources that were protected purely by middie-layer middleware rather than route-level or handler-level checks. No authentication or user interaction is required (PR:N/UI:N) once the vulnerable configuration is present.

Impact

Signals are mixed and point to a real-but-conditional issue rather than a mass-exploitation event. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/C:H/I:H/A:N, 7.4 High) captures the key trade-off: exploitation is network-based and unauthenticated, but AC:H reflects the required non-default precondition (the deprecated top-level option must be enabled). EPSS is very low (0.04%, 12th percentile) and SSVC records Exploitation: none and Automatable: no, consistent with no KEV listing and no public PoC - this is not currently seen being exploited. However, SSVC Technical Impact is total, matching the C:H/I:H bypass of authentication/authorization. The dominant limiting factor is configuration: applications using routerOptions: { ignoreDuplicateSlashes: true } (the recommended form) are not affected at all, and the option is off by default. Net: prioritize patching where the deprecated option is in use, but this is not an untargeted internet-wide emergency. No conflicting data between the CVSS network vector and the description was found; both agree it is remotely reachable when the specific config is present.

Exploit ScenarioDerived

An attacker targets a Fastify application that gates /admin/* behind authentication middleware registered through @fastify/middie and that was started with the deprecated fastify({ ignoreDuplicateSlashes: true }) option. The attacker simply requests //admin/secret: Fastify's router normalizes the path and serves the protected handler, while middie fails to match its auth middleware to the un-normalized path, returning the protected content without credentials. No PoC is publicly identified, but the technique is trivial to reproduce given the low complexity of the request itself.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 24, 2026

Authentication and authorization bypass in @fastify/middie 9.3.1 and earlier lets remote unauthenticated attackers reach protected routes by sending URLs with duplicate leading slashes (e.g. //admin/secret) when the deprecated top-level Fastify ignoreDuplicateSlashes option is enabled. Because middie reads the option only from routerOptions while Fastify's router still honors the top-level form, a normalization gap allows middleware-enforced checks to be skipped. There is no public exploit identified at time of analysis and EPSS is negligible (0.04%), but SSVC rates technical impact as total, reflecting a full auth-check bypass on affected deployments.

RemediationAI

Vendor-released patch: upgrade @fastify/middie to >= 9.3.2, which reads the deprecated top-level ignoreDuplicateSlashes option and closes the normalization gap; this is the primary and complete fix (advisory: https://github.com/fastify/middie/security/advisories/GHSA-v9ww-2j6r-98q6). If you cannot upgrade immediately, the vendor-endorsed workaround is to migrate configuration from the deprecated top-level form fastify({ ignoreDuplicateSlashes: true }) to fastify({ routerOptions: { ignoreDuplicateSlashes: true } }), which middie already honors correctly and which removes the disagreement; the trade-off is a small config change with equivalent routing behavior. Alternatively, disabling ignoreDuplicateSlashes entirely also eliminates the bypass, but the side effect is that requests with duplicate slashes will no longer be silently normalized and may 404, which can break clients that rely on that normalization. There is no additional mitigation beyond patching or reconfiguring the option.

Affected VersionsENISA

@fastify/middie 0 <9.3.2

Affected Packages

npm @fastify/middie fix: 9.3.2
euvd fastify_middie fix: 9.3.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is @fastify/middie, the Connect/Express-style middleware engine for the Fastify Node.js web framework, distributed on npm. Fastify normalizes request paths (collapsing duplicate slashes) when ignoreDuplicateSlashes is set, so the router matches a canonical path, but middie performs its own independent path matching to decide which middleware (including auth/authz gates) to run. The root cause is CWE-436 (Interpretation Conflict): middie reads ignoreDuplicateSlashes only from routerOptions and ignores the still-functional deprecated top-level fastify({ ignoreDuplicateSlashes: true }) form, so the router and the middleware layer disagree on what path is being requested. A request to //admin/secret is normalized by the router to /admin/secret and served, while middie sees the un-normalized //admin/secret and fails to apply the middleware bound to /admin/secret. This is distinct from the earlier GHSA-8p85-9qpw-fwgw (CVE-2026-2880), patched in 9.2.0.

Know when Fastify Middie gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.4 HIGH

Remote and unauthenticated (AV:N/PR:N/UI:N) but AC:H because the non-default deprecated ignoreDuplicateSlashes config is required; bypass exposes protected read/write routes (C:H/I:H), no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

3
Patch released
Apr 22, 2026 - 17:30 nvd
Patch available
Patch available
Apr 16, 2026 - 15:01 EUVD
CVE Published
Apr 16, 2026 - 13:56 nvd
HIGH 7.4

DescriptionCVE.org

@fastify/middie versions 9.3.1 and earlier are vulnerable to middleware bypass when the deprecated Fastify ignoreDuplicateSlashes option is enabled. The middleware path matching logic does not account for duplicate slash normalization performed by Fastify's router, allowing requests with duplicate slashes to bypass middleware authentication and authorization checks. This only affects applications using the deprecated ignoreDuplicateSlashes option. Upgrade to @fastify/middie 9.3.2 to fix this issue. There are no workarounds other than disabling the ignoreDuplicateSlashes option.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 npm packages depend on @fastify/middie (3 direct, 1 indirect)

Ecosystem-wide dependent count for version 9.3.2.

Executive ViewAI

Why It Matters

@fastify/middie versions 9.3.1 and earlier contain an authentication bypass vulnerability allowing unauthenticated attackers to access protected routes when the deprecated ignoreDuplicateSlashes option is enabled. While no public exploit identified at time of analysis, the vulnerability enables complete bypass of middleware-enforced authorization controls, posing a direct threat to sensitive application endpoints and protected resources. Immediate patching is critical to prevent unauthorized access.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 88% exploitable
Prevalence
Medium
common Fastify middleware plugin, but exposure needs a deprecated non-default option
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy