Vulnerability advisory

CVE-2026-15074

@fastify/static vulnerable to route guard bypass via path traversal

Published Updated OSV record ↗

Also known as GHSA-83w8-p2f5-377r

Severity
  • CVSS 3.xCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Affected versions

Repository

Affected commitsFixed by commit
GIT github.com/fastify/fastify-static ↗
All commits before 373305923c04123ccb120bc540b5fe18417b8c9d373305923c04123ccb120bc540b5fe18417b8c9d
Also listed as affected (99)
  • v10.1.0
  • v10.0.0
  • v9.3.0
  • v9.2.0
  • v9.1.3
  • v9.1.2
  • v9.1.1
  • v9.1.0
  • v9.0.0
  • v8.3.0
  • v8.2.0
  • v8.1.1
  • v8.1.0
  • v8.0.4
  • v8.0.3
  • v8.0.2
  • v8.0.1
  • v8.0.0
  • v7.0.4
  • v7.0.3
  • v7.0.2
  • v7.0.1
  • v7.0.0
  • v6.12.0
  • v6.11.2
  • v6.11.1
  • v6.11.0
  • v6.10.2
  • v6.10.1
  • v6.10.0
  • v6.9.0
  • v6.8.0
  • v6.7.0
  • v6.6.1
  • v6.6.0
  • v6.5.1
  • v6.5.0
  • v6.4.1
  • v6.4.0
  • v6.3.0
  • v6.2.0
  • v6.1.0
  • v6.0.0
  • v5.0.2
  • v5.0.1
  • v5.0.0
  • v4.6.1
  • v4.6.0
  • v4.5.0
  • v4.4.2
  • v4.4.1
  • v4.4.0
  • v4.3.0
  • v4.2.4
  • v4.2.3
  • v4.2.2
  • v4.2.1
  • v4.2.0
  • v4.1.0
  • v4.0.1
  • v4.0.0
  • v3.5.0
  • v3.4.0
  • v3.3.1
  • v3.3.0
  • v3.2.1
  • 3.2.0
  • v3.1.0
  • v3.0.1
  • v3.0.0
  • v2.7.0
  • v2.6.0
  • v2.5.1
  • v2.5.0
  • v2.4.0
  • v2.3.4
  • v2.3.3
  • v2.3.2
  • v2.3.1
  • v2.3.0
  • v2.2.0
  • v2.1.0
  • v1.0.0
  • v2.0.0
  • v0.14.0
  • v0.13.0
  • v0.12.0
  • v0.11.0
  • v0.10.0
  • v0.9.0
  • v0.8.0
  • v0.6.0
  • v0.5.0
  • v0.4.1
  • v0.4.0
  • v0.3.0
  • v0.2.1
  • v0.2.0
  • v0.1.0

Description

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

References

  • Codex
  • Claude Code
  • VS Code
  • GitHub Copilot
  • Cursor
  • Cline
  • Windsurf
  • Google Anti-gravity
  • OpenCode
  • Pi
  • Gemini CLI
  • Hermes Agent
  • Zed
  • Junie
  • Qwen Code
  • Kiro
  • Kilo Code
  • Factory Droid

Set up GitHits for your agents

Run this command:

<> bash
npx githits@latest init

What happens next:

  1. Opens your browser to authorize GitHits
  2. Asks whether to set up GitHits at the user or project level
  3. Detects your supported AI coding tools
  4. Lets you choose which tools to configure
  5. Configures the selected tools