Kritieke kwetsbaarheden die de end-to-end-encryptie in veel Matrix-clients in gevaar brengen

De ontwikkelaars van het gedecentraliseerde communicatieplatform Matrix waarschuwen voor de ontdekking van kritieke kwetsbaarheden in de bibliotheken matrix-js-sdk, matrix-ios-sdk en matrix-android-sdk2, waardoor serverbeheerders zich kunnen voordoen als andere gebruikers en berichten kunnen lezen in end-to-end versleutelde (E2EE) chats. Deze kwetsbaarheden worden veroorzaakt door bugs in individuele implementaties van het Matrix-protocol en zijn geen problemen met het protocol zelf. Momenteel heeft het project updates uitgebracht voor de problematische SDK's en een aantal cliëntapplicaties die op basis daarvan zijn gebouwd.

Om een ​​aanval succesvol uit te voeren, is toegang tot een thuiscomputer van de aanvaller vereist. server (homeserver - een server voor het opslaan van clientgeschiedenis en accounts). Door end-to-end-encryptie aan de clientzijde te gebruiken, wordt voorkomen dat de beheerder toegang krijgt. server Hoewel de geïdentificeerde kwetsbaarheden het mogelijk maken deze beveiliging te omzeilen, is de belangrijkste Matrix-client Element (voorheen Riot) voor web, desktop, iOS en Android getroffen, evenals client-apps van derden, waaronder Cinny, Beeper, SchildiChat, Circuli en Synod.im. De kwetsbaarheden hebben geen invloed op de matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go en matrix-nio bibliotheken, noch op de apps Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks en Pantalaimon.

Er zijn drie hoofdaanvalscenario's:

  • De beheerder van de Matrix-server kan de op emoji's gebaseerde verificatie (SAS, Short Authentication Strings) verbreken bij het gebruik van kruishandtekeningen en zich voordoen als een andere gebruiker. Het probleem wordt veroorzaakt door een kwetsbaarheid (CVE-2022-39250) in de matrix-js-sdk-code die verband houdt met het mengen van de verwerking van apparaat-ID's en kruis-ondertekeningssleutels.
  • Een aanvaller die de server beheert, kan zich voordoen als een vertrouwde afzender en een valse sleutel versturen om berichten van andere gebruikers te onderscheppen. Het probleem wordt veroorzaakt door een kwetsbaarheid in matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) en matrix-android-sdk2 (CVE-2022-39248) waarbij de client ten onrechte berichten accepteert die zijn geadresseerd aan het apparaat en die zijn versleuteld met het Megolm-protocol in plaats van het Olm-protocol. De berichten worden dan toegeschreven aan de Megolm-afzender in plaats van aan de werkelijke afzender.
  • Met behulp van de kwetsbaarheden die in het vorige punt zijn genoemd, kan een serverbeheerder ook een valse reservesleutel aan een gebruikersaccount toevoegen om sleutels te extraheren die worden gebruikt om berichten te versleutelen.

De onderzoekers die de kwetsbaarheid ontdekten, lieten ook aanvallen zien waarmee een derde partij aan een chat kon worden toegevoegd of waarmee het apparaat van iemand anders aan een gebruiker kon worden gekoppeld. De aanvallen zijn gebaseerd op het feit dat serviceberichten die worden gebruikt om gebruikers aan een chat toe te voegen, niet zijn gekoppeld aan de sleutels van de chatmaker en door de serverbeheerder kunnen worden gegenereerd. De ontwikkelaars van het Matrix-project hebben deze kwetsbaarheden geclassificeerd als klein, omdat dergelijke manipulaties niet onopgemerkt blijven. Als een gebruiker wordt vervangen, wordt deze weergegeven in de lijst met chatgebruikers. Wanneer een apparaat wordt toegevoegd, wordt een waarschuwing weergegeven en wordt het apparaat gemarkeerd als niet-geverifieerd. (Tegelijkertijd begint het dummy-apparaat direct na het toevoegen algemene sleutels te ontvangen die nodig zijn om berichten te ontsleutelen.)

Bron: opennet.ru

Voeg een reactie