Biblioteka @fastify/middie w wersjach 9.1.0–9.3.2 nie chroni kroku normalizacji URL przed zniekształconymi sekwencjami percent-encoded, co prowadzi do synchronicznego rzucenia wyjątku i zakończenia procesu Node.js. Skutkuje to natychmiastową odmową usługi dla wszystkich podłączonych klientów do czasu restartu aplikacji.
▸ Pokaż oryginał (EN)
@fastify/middie versions 9.1.0 through 9.3.2 fail to guard the URL normalization step used by the standalone engine when incoming request paths contain malformed percent-encoded sequences. Inputs such as an incomplete percent escape or a truncated multibyte sequence cause the underlying decoder to throw synchronously, and the exception escapes the middie normalize step and terminates the Node.js process. The bypass affects applications that call middie.run directly on the standalone engine API, causing an immediate denial of service for all connected clients until restart. Applications using the Fastify plugin path are not affected because Fastifys error handler catches the exception. Patches: upgrade to @fastify/middie 9.3.3. Workarounds: migrate from the standalone engine API to the Fastify plugin path, where the framework error handler catches the exception.
Gdy żądanie HTTP zawiera nieprawidłową sekwencję percent-encoded w ścieżce — na przykład niekompletne escape lub obcięty wielobajtowy ciąg znaków — wewnętrzny dekoder biblioteki rzuca wyjątek synchronicznie. Wyjątek nie jest przechwytywany przez krok normalizacji middie i propaguje się poza jego zasięg, terminując cały proces Node.js. Problem dotyczy wyłącznie aplikacji wywołujących metodę middie.run bezpośrednio przez API standalone engine; aplikacje korzystające ze ścieżki Fastify plugin są bezpieczne, ponieważ error handler frameworka przechwytuje wyjątek.
Nieuwierzytelniony zdalny atakujący może spowodować natychmiastowe zatrzymanie procesu Node.js, prowadząc do odmowy usługi (DoS) dla wszystkich podłączonych klientów aż do ponownego uruchomienia aplikacji.
Należy zaktualizować @fastify/middie do wersji 9.3.3. Jako obejście można zmigrować z standalone engine API na ścieżkę Fastify plugin, gdzie error handler frameworka przechwytuje wyjątek i zapobiega crashowi procesu.
@fastify/middie w wersjach od 9.1.0 do 9.3.2 używające standalone engine API (middie.run); aplikacje korzystające ze ścieżki Fastify plugin nie są podatne.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HFastify Fastify\/middie
APPFastify9.1.0 – 9.3.3 (bez)
Powiązane podatności
Fastify/Middie: pominięcie middleware przez zakodowany slash w URL
Pominięcie uwierzytelnienia w @fastify/middie — brak dziedziczenia middleware
@fastify/middie versions 9.3.1 and earlier are vulnerable to middleware bypass when the deprecated Fastify ign...
A vulnerability in @fastify/middie versions < 9.2.0 can result in authentication/authorization bypass when usi...
@fastify/middie is the plugin that adds middleware support on steroids to Fastify. A security vulnerability ex...