CVE-2026-15074: @fastify/static vulnerable to route guard bypass via path traversal
@fastify/static is vulnerable to a bypass of route-based middleware and guards via non-leading .. and %2E%2E path segments. find-my-way does not normalize .. when matching routes, so a request such as /foo/../deep/secret.txt matches the static plugin’s catch-all instead of the guarded /deep/*. The getPathnameForSend helper introduced by the fix for GHSA-x428-ghpx-8j92 only guards against the %2F variant; .. and %2E%2E survive the decodeURI + encodeURI round-trip and are then collapsed away by @fastify/send’s path.normalize before its own traversal guard runs.
Applications that rely on route-based middleware or guards to protect files served by @fastify/static can be bypassed with non-leading dot-dot path segments.
References
- cna.openjsf.org/security-advisories.html
- github.com/advisories/GHSA-83w8-p2f5-377r
- github.com/fastify/fastify-static/commit/db4276f846ba56b21f93768cd6636ee5e2fc58b1
- github.com/fastify/fastify-static/releases/tag/v10.1.1
- github.com/fastify/fastify-static/security/advisories/GHSA-83w8-p2f5-377r
- nvd.nist.gov/vuln/detail/CVE-2026-15074
Code Behaviors & Features
Detect and mitigate CVE-2026-15074 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →