Krytyczna podatność w Rocket.Chat umożliwia zalogowanie się na dowolne konto użytkownika przy użyciu przypadkowego hasła, bez znajomości prawdziwego hasła. Wynika z błędu programistycznego w walidacji hasła w usłudze ddp-streamer i może prowadzić do masowego przejęcia kont.
▸ Pokaż oryginał (EN)
Rocket.Chat is an open-source, secure, fully customizable communications platform. Prior to versions 7.8.6, 7.9.8, 7.10.7, 7.11.4, 7.12.4, 7.13.3, and 8.0.0, a critical authentication bypass vulnerability exists in Rocket.Chat's account service used in the ddp-streamer micro service that allows an attacker to log in to the service as any user with a password set, using any arbitrary password. The vulnerability stems from a missing await keyword when calling an asynchronous password validation function, causing a Promise object (which is always truthy) to be evaluated instead of the actual boolean validation result. This may lead to account takeover of any user whose username is known or guessable. This issue has been patched in versions 7.8.6, 7.9.8, 7.10.7, 7.11.4, 7.12.4, 7.13.3, and 8.0.0.
Podatność powstała na skutek pominięcia słowa kluczowego await przy wywołaniu asynchronicznej funkcji walidacji hasła. W efekcie zamiast rzeczywistego wyniku logicznego (true/false) porównywany jest obiekt Promise, który w JavaScript jest zawsze wartością truthy. Oznacza to, że każda próba uwierzytelnienia kończy się sukcesem niezależnie od podanego hasła. Atakujący musi jedynie znać lub odgadnąć nazwę użytkownika (username), aby uzyskać pełny dostęp do konta.
Atakujący może przejąć dowolne konto użytkownika Rocket.Chat, którego nazwa użytkownika jest znana lub możliwa do odgadnięcia, uzyskując tym samym dostęp do prywatnych wiadomości, kanałów i danych. W środowiskach korporacyjnych może to prowadzić do wycieku poufnych informacji lub lateral movement.
Należy niezwłocznie zaktualizować Rocket.Chat do wersji 7.8.6, 7.9.8, 7.10.7, 7.11.4, 7.12.4, 7.13.3 lub 8.0.0, w zależności od używanej gałęzi. Patche dostępne są w oficjalnym repozytorium GitHub producenta. Do czasu aktualizacji należy rozważyć ograniczenie dostępu sieciowego do instancji Rocket.Chat oraz monitorowanie logów uwierzytelnienia pod kątem anomalii.
Rocket.Chat w wersjach wcześniejszych niż 7.8.6, 7.9.8, 7.10.7, 7.11.4, 7.12.4, 7.13.3 oraz 8.0.0 — dotyczy instalacji wykorzystujących mikroserwis ddp-streamer.
Podatność została zgłoszona i naprawiona przez zespół Rocket.Chat; szczegóły techniczne oraz commit naprawczy są publicznie dostępne w repozytorium GitHub (commit 7d89aae0b1bd08e82b02ceab4c180b430e2c6f07, PR #37143, advisory GHSA-w6vw-mrgv-69vf). Prostota exploitacji (dowolne hasło, znana nazwa użytkownika) znacząco podnosi realne ryzyko pomimo braku wpisu w CISA KEV.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/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:XRocket.chat
APPRocket.Chat8.0.07.9.0 – 7.9.8 (bez)7.10.0 – 7.10.7 (bez)< 7.8.67.12.0 – 7.12.4 (bez)7.13.0 – 7.13.3 (bez)7.11.0 – 7.11.4 (bez)
Powiązane podatności
Rocket.Chat versions <8.5.1, 8.4.4, 8.3.6, 8.2.6, 8.1.6, 8.0.7, 7.13.9, 7.10.13 has an access control vulnerab...
Rocket.Chat — NoSQL injection umożliwiający przejęcie konta (SQLi)
A security vulnerability has been discovered in the implementation of 2FA on the rocket.chat platform, where o...
A command injection vulnerability exists in Rocket.Chat-Desktop <3.8.14 that could allow an attacker to pass a...
A sanitization vulnerability exists in Rocket.Chat server versions <3.13.2, <3.12.4, <3.11.4 that allowed quer...