W platformie Rocket.Chat wykryto lukę w implementacji uwierzytelniania dwuskładnikowego (2FA), polegającą na tym, że aktywacja 2FA nie unieważnia innych aktywnych sesji użytkownika. Atakujący, który wcześniej uzyskał dostęp do konta, może utrzymać go nawet po włączeniu 2FA przez właściciela konta.
▸ Pokaż oryginał (EN)
A security vulnerability has been discovered in the implementation of 2FA on the rocket.chat platform, where other active sessions are not invalidated upon activating 2FA. This could potentially allow an attacker to maintain access to a compromised account even after 2FA is enabled.
Podatność (CWE-384 — Session Fixation) wynika z nieprawidłowej obsługi sesji podczas aktywacji 2FA. Gdy użytkownik włącza 2FA na swoim koncie, istniejące sesje uwierzytelniające pozostają ważne i nie są unieważniane. Atakujący posiadający token aktywnej sesji — np. uzyskany wcześniej przez kradzież ciasteczka lub przejęcie konta — może kontynuować korzystanie z konta bez konieczności przechodzenia przez nowo dodany czynnik uwierzytelniania.
Atakujący może utrzymać pełny dostęp do przejętego konta użytkownika mimo aktywowania przez niego 2FA, co skutecznie uniemożliwia ofierze zabezpieczenie konta tą metodą i naraża na poufność, integralność oraz dostępność danych w ramach konta.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Tymczasowo zaleca się ręczne wylogowanie wszystkich aktywnych sesji po aktywacji 2FA oraz monitorowanie aktywnych sesji użytkowników.
Platforma Rocket.Chat — wersje wskazane w referencjach producenta
Podatność została zgłoszona za pośrednictwem platformy HackerOne (raport #992280).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HRocket.chat
APPRocket.Chatwszystkie wersje
Powiązane podatności
Rocket.Chat SAML SSO — Auth Bypass przez brak wiązania podpisu XML
Rocket.Chat — podatność access control w plikach Livechat (nieautoryzowany dostęp)
Rocket.Chat — NoSQL injection umożliwiający przejęcie konta (SQLi)
Rocket.Chat — pominięcie await powoduje auth bypass w ddp-streamer
Command Injection i RCE w Rocket.Chat Desktop via openInternalVideoChatWindow