Biblioteka @fastify/express w wersjach do 4.0.4 włącznie zawiera błąd w obsłudze ścieżek, który powoduje całkowite ominięcie mechanizmów bezpieczeństwa Express middleware. Podatność jest szczególnie groźna, ponieważ nie wymaga żadnej specjalnej konfiguracji ani spreparowanego żądania.
▸ Pokaż oryginał (EN)
@fastify/express v4.0.4 and earlier contains a path handling bug in the onRegister function that causes middleware paths to be doubled when inherited by child plugins. When a child plugin is registered with a prefix that matches a middleware path, the middleware path is prefixed a second time, causing it to never match incoming requests. This results in complete bypass of Express middleware security controls, including authentication, authorization, and rate limiting, for all routes defined within affected child plugin scopes. No special configuration or request crafting is required. Upgrade to @fastify/express v4.0.5 or later.
Błąd znajduje się w funkcji onRegister odpowiedzialnej za rejestrację wtyczek potomnych (child plugins). Gdy wtyczka potomna jest rejestrowana z prefiksem odpowiadającym ścieżce middleware, funkcja onRegister podwaja ten prefiks, przez co ścieżka middleware nigdy nie pasuje do przychodzących żądań HTTP. W konsekwencji wszystkie trasy zdefiniowane w zakresie dotkniętych wtyczek potomnych są obsługiwane bez przechodzenia przez skonfigurowane warstwy middleware, takie jak uwierzytelnianie, autoryzacja czy rate limiting.
Atakujący może całkowicie ominąć mechanizmy uwierzytelniania, autoryzacji oraz rate limitingu zdefiniowane jako Express middleware, uzyskując nieautoryzowany dostęp do chronionych zasobów i funkcji aplikacji.
Należy zaktualizować bibliotekę @fastify/express do wersji 4.0.5 lub nowszej.
@fastify/express w wersji 4.0.4 i wcześniejszych
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NFastify 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 uwierzytelnienia w @fastify/express via znormalizowane URL
@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