HIGH🇬🇧 English

CVE-2026-15074

Path traversal w @fastify/static umożliwia odczyt chronionych plików

CVSS 7.5v3.1pub. 2026-07-23upd. 2026-07-28

Biblioteka @fastify/static w wersjach do 10.1.0 włącznie nie odrzuca sekwencji dot-dot (../) w ścieżkach żądań przed etapem rozwiązywania pliku, co pozwala nieuwierzytelnionemu atakującemu ominąć middleware ochrony tras. Podatność jest częściowym obejściem wcześniejszej poprawki dla CVE-2026-6414.

Pokaż oryginał (EN)

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

🤖 Analiza AI
Jak działa

Atakujący umieszcza w ścieżce żądania segmenty dot-dot (..), które nie są odrzucane przez @fastify/static przed przekazaniem żądania do dalszego przetwarzania. Biblioteka send, używana wewnętrznie, normalizuje te segmenty zanim zastosuje własną ochronę przed path traversal — w efekcie ochrona route-guard jest omijana. Poprzednia poprawka (CVE-2026-6414) obejmowała jedynie zakodowane ukośniki, nie uwzględniając tego wektora. Atakujący może w ten sposób odczytać pliki wewnątrz skonfigurowanego katalogu statycznego (static root), które są chronione przez filtrowanie prefiksu URL.

Skutki

Nieuwierzytelniony atakujący może odczytać dowolne pliki znajdujące się wewnątrz skonfigurowanego katalogu statycznego, które powinny być chronione przez middleware tras. Podatność nie pozwala na wyjście poza skonfigurowany static root, lecz skutecznie obchodzi mechanizmy filtrowania dostępu na poziomie tras.

Mitygacja

Należy zaktualizować @fastify/static do wersji 10.1.1, w której problem został załatany. Szczegóły dostępne w referencjach producenta na GitHub Security Advisories.

Kogo dotyczy

@fastify/static (Fastify) w wersjach do 10.1.0 włącznie

Uwagi

Podatność stanowi bypass wcześniejszej poprawki dla CVE-2026-6414, która obejmowała wyłącznie zakodowane ukośniki. Zakres ekspozycji ograniczony jest do plików wewnątrz skonfigurowanego static root.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
  • Fastify Static

    APP
    Fastify
    < 10.1.1
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
Auth BypassPath Traversal
CWE
Referencje

Powiązane podatności

CVE-2021-22964HIGH8.8ten sam produkt

A redirect vulnerability in the `fastify-static` module version >= 4.2.4 and < 4.4.1 allows remote attackers t...

CVE-2026-7120MEDIUM5.3ten sam produkt

@fastify/static evaluates the allowedPath callback before normalizing dot segments and duplicate path separato...

CVE-2026-6410MEDIUM5.3ten sam produkt

@fastify/static w wersjach 8.0.0 do 9.1.0 pozwala na path traversal, gdy lista katalogów jest włączona za pośr...

CVE-2026-6414MEDIUM5.9ten sam produkt

Wersje @fastify/static od 8.0.0 do 9.1.0 dekodują zakodowane separatory ścieżek (%2F) przed resolucją systemu ...

CVE-2021-22963MEDIUM6.1ten sam produkt

A redirect vulnerability in the fastify-static module version < 4.2.4 allows remote attackers to redirect user...