Kritische SicherheitsanfĂ€lligkeiten, die die End-to-End-VerschlĂŒsselung in vielen Matrix-Clients gefĂ€hrden

Die Entwickler der dezentralen Kommunikationsplattform Matrix haben auf kritische SicherheitsanfĂ€lligkeiten in den Bibliotheken matrix-js-sdk, matrix-ios-sdk und matrix-android-sdk2 hingewiesen, die es Serveradministratoren ermöglichen, sich als andere Benutzer auszugeben und Nachrichten in End-to-End-verschlĂŒsselten Chats (E2EE) zu lesen. Diese Schwachstellen ergeben sich aus Fehlern in einzelnen Implementierungen des Matrix-Protokolls und stellen kein Problem des Protokolls selbst dar. Derzeit wurden Updates fĂŒr die betroffenen SDKs und einige der darauf basierenden Client-Anwendungen veröffentlicht.

FĂŒr einen erfolgreichen Angriff ist der Zugriff auf den von den Angreifern kontrollierten zu einem Server (homeserver – Server zur Speicherung der Historie und der Konten der Clients) erforderlich. Der Einsatz von End-to-End-VerschlĂŒsselung auf der Client-Seite ermöglicht es dem Administrator nicht, sich in die Nachrichtenkommunikation einzuklinken, doch die gefundenen Schwachstellen ermöglichen es, diesen Schutz zu umgehen. Die Probleme betreffen den Haupt-Matrix-Client Element (ehemals Riot) fĂŒr Web, Desktop-Systeme, iOS und Android sowie Drittanbieter-Client-Anwendungen, einschließlich Cinny, Beeper, SchildiChat, Circuli und Synod.im. Die Schwachstellen treten nicht in den Bibliotheken matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go und matrix-nio sowie in den Anwendungen Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks und Pantalaimon auf. Server Es werden drei Hauptangriffsszenarien hervorgehoben:

Der Administrator des Matrix-Servers kann die Verifizierung auf Basis von Emoji (SAS, Short Authentication Strings) unter Verwendung von Kreuzsignaturen stören und sich als einen anderen Benutzer ausgeben. Das Problem ist auf eine Schwachstelle (CVE-2022-39250) im Code von matrix-js-sdk zurĂŒckzufĂŒhren, die mit einer Vermischung der Verarbeitung von GerĂ€te-IDs und SchlĂŒsseln fĂŒr Kreuzsignaturen zusammenhĂ€ngt.

  • Der Angreifer, der den Server kontrolliert, kann einen vertrauenswĂŒrdigen Absender fĂ€lschen und einen gefĂ€lschten SchlĂŒssel ĂŒbergeben, um Nachrichten von anderen Benutzern abzufangen. Das Problem resultiert aus einer Schwachstelle in matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) und matrix-android-sdk2 (CVE-2022-39248), die dazu fĂŒhrt, dass der Client Nachrichten, die an GerĂ€te gerichtet sind und mit dem Megolm-Protokoll anstelle von Olm verschlĂŒsselt wurden, falsch akzeptiert, indem er die Nachrichten dem Megolm-Absender und nicht dem tatsĂ€chlichen Absender zuschreibt.
  • Ein die Serverarbeit ĂŒberwachender Angreifer kann den Absender fĂ€lschen, dem Vertrauen entgegengebracht wird, und einen gefĂ€lschten SchlĂŒssel ĂŒbermitteln, um Nachrichten von anderen Benutzern abzufangen. Das Problem wird durch eine SicherheitsanfĂ€lligkeit in matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) und matrix-android-sdk2 (CVE-2022-39248) verursacht, wodurch der Client adressierte GerĂ€te-Nachrichten, die mit dem Megolm-Protokoll statt mit Olm verschlĂŒsselt sind, falsch behandelt und die Nachrichten dem Megolm-Absender und nicht dem tatsĂ€chlichen Absender zuordnet.
  • Mit den im vorherigen Punkt genannten SicherheitsanfĂ€lligkeiten kann der Serveradministrator auch einen gefĂ€lschten SicherungsschlĂŒssel im Benutzerkonto hinzufĂŒgen, um die zur VerschlĂŒsselung von Nachrichten verwendeten SchlĂŒssel zu extrahieren.

Die Forscher, die die SicherheitsanfĂ€lligkeit entdeckt haben, demonstrierten auch Angriffe, bei denen ein externer Benutzer in den Chat hinzugefĂŒgt oder ein fremdes GerĂ€t mit dem Benutzer verbunden wurde. Die Angriffe basieren darauf, dass die Nachrichten, die zum HinzufĂŒgen von Benutzern in den Chat verwendet werden, nicht an die SchlĂŒssel des Chat-Erstellers gebunden sind und vom Serveradministrator generiert werden können. Entwickler des Matrix-Projekts klassifizierten diese SicherheitsanfĂ€lligkeiten als geringfĂŒgig, da solche Manipulationen nicht unbemerkt bleiben — im Falle der Benutzerinsertion wird er in der Liste der Chatbenutzer angezeigt, und bei der HinzufĂŒgung eines GerĂ€ts wird eine Warnung ausgegeben, wĂ€hrend das GerĂ€t als unverified markiert wird (so beginnt sofort nach der HinzufĂŒgung des gefĂ€lschten GerĂ€ts der Austausch gemeinsamer SchlĂŒssel, die zur EntschlĂŒsselung von Nachrichten erforderlich sind).

Quelle: opennet.ru

60GB SSD 8Gb DDR4