Description
@fastify/static versions 8.0.0 through 9.1.0 decode percent-encoded path separators (%2F) before filesystem resolution, while Fastify's router treats them as literal characters. This mismatch allows attackers to bypass route-based middleware or guards that protect files served by @fastify/static. For example, a route guard on a protected path can be circumvented by encoding the path separator in the URL. Upgrade to @fastify/static 9.1.1 to fix this issue. There are no workarounds.
Problem types
CWE-177: Improper Handling of URL Encoding (Hex Encoding)
Product status
8.0.0 (semver) before 9.1.1
9.1.1 (semver)
Credits
blakeembrey
mcollina
UlisesGascon
climba03003
References
github.com/...middie/security/advisories/GHSA-cxrg-g7r8-w69p
github.com/...s/hono/security/advisories/GHSA-q5qw-h33p-qvwr
github.com/...static/security/advisories/GHSA-x428-ghpx-8j92
cna.openjsf.org/security-advisories.html