Sono state individuate vulnerabilità (CVE-2021-40823, CVE-2021-40824) nella maggior parte delle applicazioni client per la piattaforma di comunicazione decentralizzata Matrix, che consentono di ottenere informazioni sulle chiavi utilizzate per la trasmissione di messaggi in chat con crittografia end-to-end (E2EE). Un attaccante, compromettendo uno degli utenti della chat, può decrittare i messaggi inviati in precedenza a quel utente da applicazioni client vulnerabili.
Per un'efficace sfruttamento è necessario avere accesso all'account del destinatario dei messaggi. L'accesso può essere ottenuto sia attraverso la fuga di parametri dell'account, sia attraverso l'hacking del server Matrix al quale si connette l'utente. Le vulnerabilità rappresentano il maggior rischio per gli utenti di chat crittografate collegate a server Matrix controllati da malintenzionati. Gli amministratori di tali server possono tentare di fingersi utenti del server per intercettare i messaggi inviati in chat da applicazioni client vulnerabili.
Le vulnerabilità sono causate da errori logici nelle implementazioni del meccanismo di reintegro delle chiavi, proposte in matrix-js-sdk < 12.4.1 (CVE-2021-40823), matrix-android-sdk2 < 1.2.2 (CVE-2021-40824), matrix-rust-sdk < 0.4.0, FamedlySDK < 0.5.0 e Nheko ≤ 0.8.2. Le implementazioni basate sulle librerie matrix-ios-sdk, matrix-nio e libolm non sono vulnerabili.
Di conseguenza, le vulnerabilità si manifestano in tutte le applicazioni che hanno mutuato il codice problematico e non riguardano direttamente i protocolli Matrix e Olm/Megolm. In particolare, il problema riguarda il client principale Matrix Element (precedentemente Riot) per Web, sistemi desktop e Android, nonché applicazioni client di terze parti e librerie, comprese FluffyChat, Nheko, Cinny e SchildiChat. Il problema non si manifesta nel client ufficiale per piattaforma iOS, né nelle applicazioni Chatty, Hydrogen, mautrix, purple-matrix e Syphon.
Le vulnerabilità sono state individuate durante un audit di sicurezza del cliente Element. Le correzioni sono già state rilasciate per tutti i clienti interessati. Si raccomanda agli utenti di installare urgentemente gli aggiornamenti e, prima di farlo, di mettere i clienti in modalità offline. Non ci sono prove di sfruttamento delle vulnerabilità prima della pubblicazione delle correzioni. In base ai log standard del cliente e server determinare l'esistenza di un attacco è impossibile, ma poiché per un attacco è necessaria la compromissione dell'account, gli amministratori possono analizzare la presenza di accessi sospetti nei log di autenticazione sui propri server, mentre gli utenti possono controllare l'elenco dei dispositivi associati al proprio account per eventuali recenti riconnessioni e cambi di stato di fiducia.
Il meccanismo di condivisione delle chiavi, in cui sono state trovate vulnerabilità, consente a un cliente, che non ha le chiavi per decrittografare il messaggio, di richiedere le chiavi al dispositivo mittente o ad altri suoi dispositivi. Ad esempio, tale funzionalità è necessaria per garantire la decrittografia dei vecchi messaggi su un nuovo dispositivo dell'utente o in caso di perdita delle chiavi precedentemente in possesso dell'utente. La specifica del protocollo prevede di non rispondere di default alle richieste di chiavi e di inviarle automaticamente solo a dispositivi verificati dello stesso utente. Sfortunatamente, nelle implementazioni pratiche, questo requisito non è stato soddisfatto e le richieste di invio delle chiavi sono state gestite senza un'adeguata identificazione del dispositivo.
Fonte: opennet.ru
