CVE-2026-18427
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
@fastify/static przed wersją 10.1.3 zawiera niekompletną poprawkę wcześniejszego obejścia zabezpieczeń tras. Obsługa plików statycznych odrzucała tylko segmenty katalogu nadrzędnego, ale nie kanonizowała segmentów kropek, podwójnych ukośników, zakodowanych kropek ani ukośników odwrotnych przed dopasowaniem trasy i delegowaniem do warstwy send. W rezultacie nieuwierzytelniony atakujący może zażądać pliku chronionego przez zabezpieczenie oparte na trasie, używając niekanonicznej ścieżki, która omija chronioną trasę, ale rozwiązuje się do chronionego pliku, ujawniając jego zawartość. Aplikacje chroniące poddrzewo katalogu statycznego zabezpieczeniem opartym na trasie są dotknięte, podczas gdy aplikacje polegające na opcji allowedPath nie są. Poprawka w wersji 10.1.3 kanonizuje ścieżkę, w tym odrzuca ukośniki odwrotne, na ścieżce używanej do routingu i serwowania.
Ocena ryzyka
Ryzyko polega na ujawnieniu zawartości chronionych plików, co może prowadzić do wycieku poufnych danych. Atak nie wymaga uwierzytelnienia, więc może być przeprowadzony przez każdego, kto ma dostęp do serwera.
Rekomendacja
Zaleca się aktualizację @fastify/static do wersji 10.1.3 lub nowszej. Należy również przejrzeć konfigurację zabezpieczeń tras, aby upewnić się, że nie ma innych luk.
Inne podatności w @fastify/static
Zobacz wszystkie- CVE-2026-7120Średnie
W @fastify/static przed wersją 10.1.2 funkcja allowedPath jest wywoływana przed normalizacją segmentów kropek i duplikatów separatorów ścieżki. Nieuwierzytelniony atakujący może ominąć ograniczenia allowedPath, żądając niekanonicznych ścieżek, co pozwala na serwowanie plików, które miały być zablokowane.
- CVE-2026-15074Wysokie
Biblioteka @fastify/static do wersji 10.1.0 nie odrzuca sekwencji '..' w ścieżkach URL przed rozpoznaniem pliku. Umożliwia to ominięcie zabezpieczeń przed path traversal i odczyt plików wewnątrz katalogu statycznego, które znajdują się pod chronionym prefiksem URL. Podatność została załatana w wersji 10.1.1.
Oryginalny opis (angielski, źródło NVD)
@fastify/static before version 10.1.3 contains an incomplete fix for a previous route guard bypass. The static file handler rejected only parent directory segments, but it did not canonicalize dot segments, duplicate slashes, encoded dots, or backslashes before route matching and before delegating to the send layer. As a result, an unauthenticated attacker could request a file protected by a route based guard using a non canonical path form that misses the guarded route yet resolves back onto the protected file, disclosing its contents. Applications that protect a subtree of the static root with a route based guard are affected, while applications relying on the allowedPath option are not. This is fixed in @fastify/static 10.1.3, which canonicalizes the pathname, including rejecting backslashes, on the path used for routing and serving.

