Dezvoltatorii platformei de comunicații descentralizate Matrix au avertizat cu privire la identificarea unor vulnerabilități critice în bibliotecile matrix-js-sdk, matrix-ios-sdk și matrix-android-sdk2, care permit administratorilor de servere să se pretindă a fi alți utilizatori și să citească mesajele din conversațiile cu criptare end-to-end (E2EE). Vulnerabilitățile sunt cauzate de erori în implementările individuale ale protocolului Matrix și nu reprezintă probleme ale protocolului în sine. În prezent, proiectul a lansat actualizări pentru SDK-urile afectate și pentru o parte din aplicațiile client construite pe baza acestora.
Pentru a realiza cu succes un atac, este necesară o conexiune la serverul de acasă controlat de atacator server (homeserver — server pentru stocarea istoricului și conturilor clienților). Aplicarea criptării end-to-end pe partea clientului nu permite administratorului server să intervină în schimbul de mesaje, dar vulnerabilitățile constatate oferă posibilitatea de a ocoli această protecție. Problemele afectează clientul principal Matrix, Element (fost Riot), pentru web, sisteme desktop, iOS și Android, precum și aplicațiile client terțe, inclusiv Cinny, Beeper, SchildiChat, Circuli și Synod.im. Vulnerabilitățile nu se manifestă în bibliotecile matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go și matrix-nio, precum și în aplicațiile Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks și Pantalaimon.
Se evidențiază trei scenarii principale de atac:
- Administratorul serverului Matrix poate compromite funcționarea verificării bazate pe emoji (SAS, Short Authentication Strings) prin utilizarea semnăturilor încrucișate și se poate pretinde a fi alt utilizator. Problema este cauzată de o vulnerabilitate (CVE-2022-39250) în codul matrix-js-sdk, asociată cu amestecarea procesării identificatorilor de dispozitive și a cheilor de semnătură încrucișată.
- Atacatorul care controlează serverul poate falsifica un expeditor de încredere și poate transmite o cheie falsă pentru interceptarea mesajelor de la alți utilizatori. Problema este cauzată de o vulnerabilitate în matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) și matrix-android-sdk2 (CVE-2022-39248), din cauza căreia clientul accepta incorect mesajele adresate dispozitivelor, criptate folosind protocolul Megolm în loc de Olm, atribuind mesajele expeditorului Megolm și nu expeditorului real.
- Folosind vulnerabilitățile menționate în punctul anterior, administratorul serverului poate adăuga, de asemenea, o cheie de rezervă falsă în contul utilizatorului pentru a extrage cheile utilizate pentru criptarea mesajelor.
Cercetătorii care au descoperit vulnerabilitatea au demonstrat, de asemenea, atacuri care permit adăugarea unui utilizator străin în chat sau atașarea unui dispozitiv străin la utilizator. Atacurile se bazează pe faptul că mesajele de sistem utilizate pentru a adăuga utilizatori în chat nu sunt legate de cheile creatorului chatului și pot fi generate de administratorul serverului. Dezvoltatorii proiectului Matrix au clasificat aceste vulnerabilități ca fiind minore, deoarece astfel de manipulări nu vor trece neobservate — în cazul în care un utilizator este substituit, acesta va apărea în lista utilizatorilor din chat, iar la adăugarea unui dispozitiv va apărea un avertisment, iar dispozitivul va fi marcat ca neconfirmat (imediat după adăugarea dispozitivului substituit, cheile comune necesare pentru decriptarea mesajelor vor începe să fie transmise).
Sursa: opennet.ro
