Podatność w NATS Server umożliwia nieuwierzytelnionemu klientowi MQTT wyczerpanie pamięci serwera poprzez przesyłanie dużych, niekompletnych pakietów CONNECT. Skutkuje to odmową usługi (DoS) bez konieczności uwierzytelnienia.
▸ Pokaż oryginał (EN)
NATS Server is a high-performance server for NATS.io, the cloud and edge native messaging system. Prior to 2.14.3 and 2.12.12, an unauthenticated MQTT client could cause the server to retain large incomplete MQTT CONNECT packets before authentication completed, consuming server memory while the parser waited for the advertised MQTT packet length. This issue is fixed in versions 2.14.3 and 2.12.12.
Nieuwierzytelniony klient MQTT może wysłać pakiet CONNECT deklarujący dużą długość danych, ale nie dostarczać kompletnej zawartości. Parser NATS Server oczekuje na resztę danych zgodnie z zadeklarowaną długością pakietu, przez co niekompletny pakiet jest przetrzymywany w pamięci serwera. Atakujący może wielokrotnie powtarzać ten schemat przed zakończeniem procesu uwierzytelniania, co prowadzi do niekontrolowanego zużycia zasobów pamięci (CWE-400: Uncontrolled Resource Consumption).
Atakujący bez żadnych uprawnień może doprowadzić do wyczerpania pamięci serwera i wywołania odmowy usługi (DoS), co skutkuje niedostępnością systemu messagingowego opartego na NATS.
Należy zaktualizować NATS Server do wersji 2.14.3 lub 2.12.12, w których problem został naprawiony. Poprawki dostępne są w repozytoriach GitHub projektu nats-io/nats-server.
NATS Server w wersjach przed 2.14.3 oraz przed 2.12.12 (gałęzie 2.14.x i 2.12.x).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HLinuxfoundation Nats Server
APPLinuxfoundation< 2.12.122.14.0 – 2.14.3 (bez)
Powiązane podatności
Path traversal w NATS nats-server umożliwiający nieautoryzowane działania zarządzania
Nieprawidłowa kontrola dostępu w JWT library w NATS nats-server
NATS Server: przepełnienie arytmetyczne w paginacji Connz prowadzi do crash serwera
NATS Server: injection protokołu przez filtry subskrypcji MQTT
NATS Server — crash serwera przez nieuwierzytelniony węzeł leafnode