Description
@fastify/middie versions 9.1.0 through 9.3.2 decode the encoded slash %2F inside path parameter values before matching middleware paths, while Fastify's underlying router preserves the encoding during route lookup. The two layers disagree on the canonical request path, so the middleware fails to match a URL that the route handler does match. When middleware is used for authentication, authorization, rate limiting, or auditing on parameterized paths, an attacker can reach the protected handler by sending a single crafted URL with an encoded slash in the parameter position. The bypass is HTTP method agnostic and requires no authentication or special preconditions. Patches: upgrade to @fastify/middie 9.3.3. Workarounds: avoid parameterized middleware paths for security decisions, or enforce authentication at the route handler or via a Fastify hook that runs after the router has resolved the request.
Published: 2026-07-01
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises because @fastify/middie decodes encoded slashes (%2F) inside path parameters before matching middleware routes, while Fastify’s router keeps them encoded during route resolution. This mismatch, a CWE‑436 Business Logic Error, causes the middleware to fail to match a URL that the target route handler actually receives, allowing an attacker to load a protected handler by sending a single crafted URL containing an encoded slash in the parameter position. The bypass is HTTP‑method agnostic and does not require authentication or any special environment, effectively providing unauthorized access when middleware is used for authentication, authorization, rate limiting, or auditing on parameterized paths.

Affected Systems

The affected product is @fastify/middie, versions 9.1.0 through 9.3.2, which decode encoded slashes before matching middleware paths.

Risk and Exploitability

CVSS score 9.1 indicates critical severity. EPSS score is < 1%, indicating a very low likelihood of exploitation, and the vulnerability is not listed in KEV. The attack requires no special conditions and can be performed by any user who can send an HTTP request, using a single URL that includes an encoded slash in a path parameter. Because it bypasses middleware protections, the attacker can access routes protected only by these middleware layers.

Generated by OpenCVE AI on July 21, 2026 at 14:56 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to @fastify/middie 9.3.3.
  • Avoid using parameterized paths in middleware for security enforcement.
  • Move authentication, authorization, or rate limiting to the route handler or to Fastify hooks that execute after the router has resolved the request.

Generated by OpenCVE AI on July 21, 2026 at 14:56 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 01 Jul 2026 12:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Wed, 01 Jul 2026 11:45:00 +0000

Type Values Removed Values Added
Description @fastify/middie versions 9.1.0 through 9.3.2 decode the encoded slash %2F inside path parameter values before matching middleware paths, while Fastify's underlying router preserves the encoding during route lookup. The two layers disagree on the canonical request path, so the middleware fails to match a URL that the route handler does match. When middleware is used for authentication, authorization, rate limiting, or auditing on parameterized paths, an attacker can reach the protected handler by sending a single crafted URL with an encoded slash in the parameter position. The bypass is HTTP method agnostic and requires no authentication or special preconditions. Patches: upgrade to @fastify/middie 9.3.3. Workarounds: avoid parameterized middleware paths for security decisions, or enforce authentication at the route handler or via a Fastify hook that runs after the router has resolved the request.
Title @fastify/middie vulnerable to authorization bypass via encoded slash in path parameter values
Weaknesses CWE-436
References
Metrics cvssV3_1

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


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: openjs

Published:

Updated: 2026-07-01T12:10:29.571Z

Reserved: 2026-06-30T09:12:37.009Z

Link: CVE-2026-14198

cve-icon Vulnrichment

Updated: 2026-07-01T12:10:20.482Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-21T15:00:09Z

Weaknesses