Rilevate diverse vulnerabilità che compromettono molti clienti Matrix

protocollo matrice

Matrix è un protocollo di messaggistica istantanea aperto. È progettato per consentire agli utenti di comunicare tramite chat online, voice over IP e chat video.

Recentemente il sviluppatori di piattaforme comunicazioni decentralizzates «Matrix» ha pubblicato un avviso su varie vulnerabilità che sono stati rilevati e sono critici nelle librerie matrix-js-sdk, matrix-ios-sdk e matrix-android-sdk2 che consentono agli amministratori del server di impersonare altri utenti e leggere i messaggi dalle chat crittografate end-to-end (E2EE).

Si è detto che per completare con successo un attacco, è necessario accedere a un server domestico controllato dagli aggressori (server principale: un server per memorizzare la cronologia e gli account dei client). L'utilizzo della crittografia end-to-end lato client non consente all'amministratore del server di intervenire nella messaggistica, ma le vulnerabilità individuate consentono di aggirare questa protezione.

I problemi interessano il client Element Matrix principale (precedentemente Riot) per Web, desktop, iOS e Android, nonché app client di terze parti come Cinny, Beeper, SchildiChat, Circuli e Synod.im.

Le vulnerabilità non compaiono nelle librerie matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go e matrix-nio, così come Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Applicazioni Gomuks e Pantalaimon.

Si noti che i problemi di gravità critica sono problemi di implementazione in matrix-js-sdk e derivati ​​e non sono problemi di protocollo in Matrix. L'ultima versione del documento dei ricercatori che abbiamo visto ritrae erroneamente Element come "il client Matrix di riferimento" e confonde errori di implementazione di gravità maggiore con critiche al protocollo di gravità inferiore.

Ci sono tre scenari attacco principale:

  1. L'amministratore del server Matrix può interrompere la verifica basata su emoji (SAS, Short Authentication Chains) utilizzando firme incrociate e impersonando un altro utente. Il problema è causato da una vulnerabilità (CVE-2022-39250) nel codice matrix-js-sdk relativo alla combinazione di gestione dell'ID dispositivo e chiavi di firma incrociata.
  2. Un utente malintenzionato che controlla il server può impersonare un mittente attendibile e passare una chiave falsa per intercettare i messaggi di altri utenti. Il problema è dovuto a una vulnerabilità in matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) e matrix-android-sdk2 (CVE-2022-39248), che ha causato il Il client accetta erroneamente messaggi indirizzati a dispositivi crittografati utilizzando il protocollo Megolm anziché Olm , attribuendo i messaggi al mittente Megolm anziché al mittente effettivo.
  3. Sfruttando le vulnerabilità citate nel paragrafo precedente, l'amministratore del server può anche aggiungere una chiave di riserva fittizia all'account utente per estrarre le chiavi utilizzate per crittografare i messaggi.

I ricercatori che hanno identificato la vulnerabilità ha anche dimostrato attacchi che aggiungono un utente di terze parti a una chat o collegare un dispositivo di terze parti all'utente. Gli attacchi si basano sul fatto che i messaggi di servizio utilizzati per aggiungere utenti alla chat non sono collegati alle chiavi del creatore della chat e possono essere generati dall'amministratore del server.

Gli sviluppatori del progetto Matrix hanno classificato queste vulnerabilità come minori, poiché tali manipolazioni non sono inerenti a Matrix e interessano solo i client in base al protocollo, ma ciò non significa che non passeranno inosservate: se un utente viene sostituito, verrà mostrato nell'elenco degli utenti della chat, e una volta aggiunto un dispositivo, verrà visualizzato un avviso e il dispositivo verrà contrassegnato come non verificato (in questo caso, subito dopo aver aggiunto il dispositivo non autorizzato, inizierà a ricevere le chiavi pubbliche necessarie per decifrare i messaggi.

Noterai che matrix-rust-sdk, Hydrogen-sdk e altri SDK di XNUMXa e XNUMXa generazione non sono stati interessati dai bug nella causa principale dei problemi critici qui. Questo è esattamente il motivo per cui abbiamo lavorato per sostituire gli SDK di prima generazione con un'implementazione pulita e accuratamente scritta di Rust sotto forma di matrix-rust-sdk, completa di un audit pubblico indipendente in corso.

Le vulnerabilità sono causate da bug nelle singole implementazioni del protocollo Matrix e non sono problemi del protocollo stesso. Attualmente, il progetto ha rilasciato aggiornamenti per gli SDK problematici e alcune delle applicazioni client basate su di essi.

Finalmente sì ti interessa saperne di più, puoi controllare i dettagli nel file seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.