CVE-2026-15074: @fastify/static vulnerable to route guard bypass via path traversal

Published Jul 23, 2026
·
Updated

@fastify/static up to and including version 10.1.0 fails to reject dot-dot path segments in request pathnames before the file-resolution stage. This is a bypass of the earlier fix for CVE-2026-6414, which only covered encoded forward slashes. Because the underlying send library normalizes dot segments before applying its own path-traversal guard, an unauthenticated attacker can bypass any route-scoped middleware and read files inside the static root that live under the guarded URL prefix. The bypass does not allow access outside the configured static root by itself, it defeats route-guard filtering only. The issue is patched in @fastify/static 10.1.1.

Other sources

Impact

@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.

Patches

Upgrade to @fastify/static 10.1.1.

Workarounds

Do not use route-based middlewares or guards to protect files served by @fastify/static.

GitHub

Affected Software

3 affected componentsFixes available
npm/@fastify/static<=10.1.0
npm/@fastify/static<=10.1.0
10.1.1
fastify fastify-static<10.1.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/@fastify/static to a version that resolves this vulnerability.

    Fixed in 10.1.1
  2. Upgrade

    Upgrade @fastify/static to a version that resolves this vulnerability.

    Fixed in 10.1.1
  3. Configuration

    Do not rely on route-based middleware/guards (that are scoped to the guarded URL prefix) to protect files served by @fastify/static; the bypass can defeat route-guard filtering via non-leading '..' and '%2E%2E' path segments.

    Applications using @fastify/static Do not use route-based middleware or guards to protect files served by @fastify/static = disabled

Event History

Jul 23, 2026
CVE Published
via MITRE·03:01 AM
Data Sourced
via MITRE·03:01 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·04:16 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·04:16 AM
Affected Software
Jul 24, 2026
Advisory Published
via GitHub·04:43 PM
Data Sourced
via GitHub·04:43 PM
DescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-15074?

CVE-2026-15074 has a severity rating of 7.5, classified as high.

2

How do I fix CVE-2026-15074?

To fix CVE-2026-15074, upgrade the @fastify/static package to version 10.1.1 or later.

3

What type of vulnerability is CVE-2026-15074?

CVE-2026-15074 is a path traversal vulnerability.

4

What versions of @fastify/static are affected by CVE-2026-15074?

Versions of @fastify/static up to and including 10.1.0 are affected by CVE-2026-15074.

5

What is the main issue with CVE-2026-15074?

CVE-2026-15074 allows for a route guard bypass due to failure in rejecting dot-dot path segments before file resolution.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203