Biblioteka @fastify/express w wersji 4.0.4 i wcześniejszych nie normalizuje URL-i przed przekazaniem ich do middleware Express, co umożliwia całkowite ominięcie mechanizmów uwierzytelnienia opartych na ścieżkach. Atakujący bez żadnych uprawnień może uzyskać dostęp do chronionych zasobów poprzez proste manipulacje URL.
▸ Pokaż oryginał (EN)
Impact@fastify/express v4.0.4 and earlier fails to normalize URLs before passing them to Express middleware when Fastify router normalization options are enabled. This allows complete bypass of path-scoped authentication middleware via duplicate slashes when ignoreDuplicateSlashes is enabled, or via semicolon delimiters when useSemicolonDelimiter is enabled. In both cases, Fastify router normalizes the URL and matches the route, but @fastify/express passes the original un-normalized URL to Express middleware, which fails to match and is skipped. An unauthenticated attacker can access protected routes by manipulating the URL path. PatchesUpgrade to @fastify/express v4.0.5 or later.
Gdy włączone są opcje normalizacji routera Fastify (ignoreDuplicateSlashes lub useSemicolonDelimiter), router Fastify normalizuje przychodzący URL i poprawnie dopasowuje trasę. Jednak @fastify/express przekazuje do middleware Express oryginalny, niezmodyfikowany URL, który nie pasuje do wzorców chronionych ścieżek — w efekcie middleware uwierzytelniające jest pomijane. Atakujący może np. dodać podwójne ukośniki (np. //admin) lub użyć średnika jako separatora w URL, aby ominąć weryfikację tożsamości i trafić bezpośrednio do chronionego zasobu.
Nieuwierzytelniony atakujący może uzyskać nieautoryzowany dostęp do chronionych tras aplikacji, potencjalnie odczytując lub modyfikując dane wymagające uwierzytelnienia.
Należy zaktualizować @fastify/express do wersji 4.0.5 lub nowszej, w której poprawiono normalizację URL przed przekazaniem żądania do middleware Express.
@fastify/express w wersji 4.0.4 i wcześniejszych, gdy włączona jest opcja ignoreDuplicateSlashes lub useSemicolonDelimiter w konfiguracji routera Fastify
Podatność sklasyfikowana jako CWE-436 (Interpretation Conflict), co oznacza, że źródłem problemu jest rozbieżność w interpretacji URL pomiędzy routerem Fastify a middleware Express.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XFastify Fastify\/express
APPFastify< 4.0.5
Powiązane podatności
@fastify/express versions 4.0.6 and earlier only rewrite the plugin prefix for middleware mount paths when the...
Pominięcie middleware security w @fastify/express — bypass uwierzytelniania
@fastify/middie versions 9.1.0 through 9.3.2 decode the encoded slash %2F inside path parameter values before ...
Pominięcie uwierzytelnienia w @fastify/middie — brak dziedziczenia middleware
Usuwanie nagłówków proxy przez manipulację nagłówkiem Connection w @fastify/reply-from