@fastify/express vulnerable to path-scoped middleware bypass via absolute-form request targets
- Published
- Last modified
- Status
- published
- Known exploitation
- Not listed in CISA KEV
- Fix
- Fixed in 4.0.9
- Public exploit
- None on Exploit-DB
Summary
@fastify/express, a plugin that runs Express middleware inside the Fastify web framework, is affected when the non-default ignoreDuplicateSlashes option is enabled. An unauthenticated attacker can send a specially formatted request that skips path-scoped middleware such as authentication, authorization, or rate limiting, allowing access to protected routes like admin paths.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
@fastify/express is a Fastify plugin that runs Express middleware inside Fastify. In versions 4.0.5 through 4.0.8, when Fastify runs with the non-default ignoreDuplicateSlashes option enabled, the plugin matches path-scoped Express middleware against a URL whose duplicate-slash normalization has also collapsed the separator after an absolute-form request target's scheme, so Fastify's router resolves the request to the scoped path and runs the handler while the Express layer no longer sees that path. As a result, a request using an absolute-form target can reach a handler on a scoped route such as an admin path while the middleware for authentication, authorization, or rate limiting is skipped. An unauthenticated attacker needs only the non-default ignoreDuplicateSlashes option to be enabled. The issue is fixed in @fastify/express 4.0.9, and users should upgrade to 4.0.9 or later. As a workaround, enforce authentication in a Fastify hook such as preHandler that runs after the router resolves the request, or leave ignoreDuplicateSlashes at its default.
Affected versions
- @fastify/express @fastify/express
From 4.0.5 · fixed in 4.0.9