In den meisten Clientanwendungen für die dezentrale Kommunikationsplattform Matrix wurden Schwachstellen (CVE-2021-40823, CVE-2021-40824) entdeckt, die es ermöglichen, Informationen über die für die Übertragung von Nachrichten in Chats mit Ende-zu-Ende-Verschlüsselung (E2EE) verwendeten Schlüssel zu erhalten. Ein Angreifer, der einen der Chat-Nutzer kompromittiert hat, kann Nachrichten entschlüsseln, die zuvor an diesen Nutzer aus den verwundbaren Clientanwendungen gesendet wurden.
Für eine erfolgreiche Ausnutzung ist der Zugang zum Konto des Empfängers von Nachrichten erforderlich. Der Zugang kann sowohl durch das Leaken von Account-Daten als auch durch den Hack des Matrix-Servers, über den sich der Nutzer verbindet, erlangt werden. Die Schwachstellen stellen die größte Gefahr für Nutzer von verschlüsselten Chaträumen dar, die mit Matrix-Servern verbunden sind, die von Angreifern kontrolliert werden. Administratoren solcher Server könnten versuchen, sich als Nutzer des Servers auszugeben, um Nachrichten, die in Chats mit den verwundbaren Clientanwendungen gesendet werden, abzufangen.
Die Schwachstellen resultieren aus logischen Fehlern in der Implementierung des Mechanismus zur Wiederherstellung des Zugangs zu Schlüsseln, der 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 und Nheko ≤ 0.8.2 vorgeschlagen wurde. Implementierungen basierend auf den Bibliotheken matrix-ios-sdk, matrix-nio und libolm sind von diesen Schwachstellen nicht betroffen.
Die Schwachstellen sind entsprechend in allen Anwendungen vorhanden, die den problematischen Code übernommen haben, und betreffen nicht direkt die Protokolle Matrix und Olm/Megolm. Insbesondere betrifft das Problem den Haupt-Matrix-Client Element (ehemals Riot) für Web, Desktop-Systeme und Android, sowie Drittanbieter-Clientanwendungen und Bibliotheken, darunter FluffyChat, Nheko, Cinny und SchildiChat. Das Problem tritt nicht im offiziellen Client für die iOS-Plattform auf, ebenso wenig in den Anwendungen Chatty, Hydrogen, mautrix, purple-matrix und Syphon.
Die Schwachstellen wurden im Rahmen eines Sicherheitsaudits des Element-Clients identifiziert. Patches wurden bereits für alle problematischen Clients veröffentlicht. Den Nutzern wird empfohlen, die Updates dringend zu installieren, und die Clients bis zur Installation des Updates in den Offline-Modus zu versetzen. Nach der Veröffentlichung des Patches sind keine Hinweise auf die Ausnutzung der Schwachstelle bekannt. Basierend auf den regulären Logs des Clients und Server Es ist unmöglich, den Angriff festzustellen, aber da für einen Angriff eine Kompromittierung des Kontos erforderlich ist, können die Administratoren verdächtige Anmeldungen in den Authentifizierungsprotokollen ihrer Server analysieren, während die Benutzer die Liste der mit ihrem Konto verknüpften Geräte auf kürzliche Wiederverbindungen und Änderungen des Vertrauensstatus überprüfen sollten.
Der Schlüsselteilungsmechanismus, in dessen Umsetzung Schwachstellen gefunden wurden, ermöglicht es einem Client, der keine Schlüssel zum Entschlüsseln einer Nachricht hat, Schlüssel vom sendenden Gerät oder anderen eigenen Geräten anzufordern. Diese Möglichkeit ist beispielsweise notwendig, um alte Nachrichten auf einem neuen Gerät des Benutzers zu entschlüsseln oder im Falle eines Verlusts der bestehenden Schlüssel. Die Protokollspezifikation sieht standardmäßig vor, nicht auf Schlüsselanforderungen zu antworten und sie automatisch nur an verifizierte Geräte desselben Benutzers zu senden. Leider wurde diese Anforderung in praktischen Umsetzungen nicht eingehalten, und die Anfragen zum Senden von Schlüsseln wurden ohne angemessene Geräteidentifizierung bearbeitet.
Quelle: opennet.ru
