CVE-2026-73561
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 36 - wyżej niż 36% wszystkich znanych CVE
Streszczenie
Hub przed wersją 0.2.16 ma podatność, w której każde nieuwierzytelnione połączenie WebSocket wywołuje loadDefaultConnectionEventListeners, co prowadzi do wywołania requestClientId i wysłania żądania get-client-id, które dodaje wpis do RPC.requests. Funkcja RPC.waitForReply uruchamia pętlę setInterval co 10 milisekund, która jest czyszczona tylko po otrzymaniu odpowiedzi; jeśli klient pozostaje cichy i zamyka połączenie, licznik i oczekujące żądanie pozostają przydzielone. Powtarzane połączenia powodują nieograniczony wzrost liczników i wpisów w stercie, wyczerpując CPU i pamięć oraz czyniąc serwer niedostępnym. Problem naprawiono w wersji 0.2.16.
Ocena ryzyka
Zdalny atakujący może wysyłać wiele połączeń WebSocket, powodując wyczerpanie zasobów serwera i niedostępność usługi. Może to prowadzić do ataku DoS.
Rekomendacja
Należy zaktualizować Hub do wersji 0.2.16 lub nowszej, która zawiera poprawkę.
Oryginalny opis (angielski, źródło NVD)
Hub is a Node.js WebSocket server and client with added features. Prior to 0.2.16, every incoming unauthenticated WebSocket connection triggers loadDefaultConnectionEventListeners to call requestClientId, which calls rpc.send for the get-client-id action and pushes a request into RPC.requests. The RPC.waitForReply function starts a setInterval polling loop every 10 milliseconds that is cleared only after a matching reply; if the client remains silent and closes, the timer and pending request stay allocated because the socket close path does not cancel them. Repeated connections therefore cause unbounded timers and heap entries, exhausting CPU and memory and making the server unavailable. This issue is fixed in version 0.2.16.

