CVE-2026-112712
CriticalCVSS 9.1Summary
@fastify/middie is the Express-style middleware engine for Fastify. In versions 9.0.0 through 9.3.5, the use() function joined a path-scoped middleware's mount path to the plugin scope prefix in a way that could diverge from the path Fastify's router serves, most often when the scope prefix ended in a slash, and also for array mount paths and mount paths without a leading slash. When the two paths disagreed, the middleware was silently skipped while the route handler still ran, so path-scoped middleware such as authentication, authorization, or rate limiting could be bypassed by a single unauthenticated request. The issue is fixed in @fastify/middie 9.3.6.
Risk Assessment
Bypassing authentication or authorization middleware may allow an unauthenticated attacker to access protected application routes. This poses a serious security risk to Fastify-based applications.
Recommendation
Upgrade @fastify/middie to version 9.3.6 or later. As a workaround, enforce authorization in a Fastify hook such as preHandler that runs after the router has resolved the request.
Other vulnerabilities in @fastify/middie
See all- CVE-2026-33804High
Versions @fastify/middie 9.3.1 and earlier are vulnerable to middleware bypass when the deprecated ignoreDuplicateSlashes option is enabled. The middleware path matching logic does not account for duplicate slash normalization, allowing requests with duplicate slashes to bypass authentication and authorization checks.
- CVE-2026-22031High
The @fastify/middie plugin prior to version 9.1.0 has a vulnerability that allows bypassing registered middleware using URL-encoded characters. Attackers can access protected endpoints without the constraints imposed by the middleware.
- CVE-2026-85184Critical
In @fastify/middie versions >= 9.1.0 and before 9.3.4, the decision to run path-scoped middleware is made by matching against the raw request target, while the Fastify router resolves an absolute-form request target to its path before dispatching. Because the two layers evaluate different strings, a request using an absolute-form target reaches the route handler while the path-scoped middleware, such as authentication or authorization, is skipped. An unauthenticated network attacker can use this to bypass path-based access controls in a Fastify application that relies on middie for those controls.
- CVE-2026-14198Critical
A vulnerability in @fastify/middie versions 9.1.0 through 9.3.2 causes a mismatch in handling encoded slashes (%2F) between the middleware and Fastify's router. An attacker can bypass middleware used for authentication, authorization, rate limiting, or auditing by sending a crafted request with an encoded slash in the parameter position.
- CVE-2026-6270Critical
Versions of @fastify/middie up to 9.3.1 do not register inherited middleware directly on child plugin engine instances. This allows unauthenticated requests to bypass authentication and authorization checks for routes defined in child plugins.
- CVE-2026-2880Critical
A vulnerability in @fastify/middie versions < 9.2.0 can result in authentication/authorization bypass when using path-scoped middleware. When Fastify router normalization options are enabled, crafted request paths may bypass middleware checks.
- CVE-2026-14181High
Vulnerability in @fastify/middie versions 9.1.0 through 9.3.2 causes Node.js process termination when processing malformed percent-encoded sequences in request paths. The issue only affects the standalone engine API (middie.run), not the Fastify plugin path.
Original NVD description (English source)
@fastify/middie is the Express-style middleware engine for Fastify. In versions from 9.0.0 through 9.3.5, the use() function joined a path-scoped middleware's mount path to the plugin scope prefix in a way that could diverge from the path Fastify's router serves, most often when the scope prefix ended in a slash, and also for array mount paths and for mount paths written without a leading slash. When the two paths disagreed, the middleware was silently skipped while the route handler still ran, so path-scoped middleware such as authentication, authorization, or rate limiting could be bypassed by a single unauthenticated request. The issue is fixed in @fastify/middie 9.3.6, and users should upgrade to 9.3.6 or later. As a workaround, enforce authorization in a Fastify hook such as preHandler that runs after the router has resolved the request.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

