Udviklerne af platformen for decentraliseret kommunikation Matrix har advaret om opdagelse af kritiske sårbarheder i bibliotekerne matrix-js-sdk, matrix-ios-sdk og matrix-android-sdk2, der gør det muligt for serveradministratorer at udgive sig for andre brugere og læse beskeder i chats med ende-til-ende kryptering (E2EE). Sårbarhederne skyldes fejl i de enkelte implementeringer af Matrix-protokollen og er ikke problemer i selve protokollen. I øjeblikket har projektet udsendt opdateringer til de problematiske SDK'er og de dele af klient-applikationer, der er bygget på deres basis.
For at gennemføre et angreb med succes kræves der adgang til en hjemmestyret server, server (homeserver — serveren til opbevaring af historik og kontoer for kunder). Anvendelsen af ende-til-ende kryptering på klientsiden forhindrer ikke administratoren server i at blande sig i meddelelsesudvekslingen, men de identificerede sårbarheder giver mulighed for at omgå denne beskyttelse. Problemerne berører den primære Matrix-klient Element (tidligere Riot) til web, desktop-systemer, iOS og Android, samt tredjeparts klientapplikationer, herunder Cinny, Beeper, SchildiChat, Circuli og Synod.im. Sårbarhederne optræder ikke i bibliotekerne matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go og matrix-nio, samt i applikationerne Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks og Pantalaimon.
Tre hovedscenarier for angreb fremhæves:
- En Matrix-serveradministrator kan bryde verifikationen baseret på emojis (SAS, Short Authentication Strings) ved brug af krydsunderskrifter og udgive sig for en anden bruger. Problemet skyldes en sårbarhed (CVE-2022-39250) i koden af matrix-js-sdk, relateret til sammenblanding af behandling af enhedsidentiteter og krydsunderskriftsnøgler.
- En angrebsmand, der kontrollerer serveren, kan forfalske en betroet afsender og overlevere en falsk nøgle til at opfange beskeder fra andre brugere. Problemet skyldes en sårbarhed i matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) og matrix-android-sdk2 (CVE-2022-39248), som får klienten til forkert at modtage adresserede beskeder til enhederne, som er krypteret ved brug af Megolm-protokollen i stedet for Olm, og tilskriver beskederne til afsenderen Megolm og ikke den faktiske afsender.
- Ved at udnytte de sårbarheder, der nævnes i det foregående punkt, kan serveradministratoren også tilføje en falsk nøgle til en brugerkonto for at hente nøgler, der bruges til at kryptere beskeder.
Forskerne, der opdagede sårbarheden, demonstrerede også angreb, der medførte tilføjelse af en tredjepartsbruger til en chat eller tilknytning af en fremmed enhed til brugeren. Angrebene er baseret på, at servicemeddelelserne, der bruges til at tilføje brugere til chatten, ikke er bundet til nøglerne fra chatens skaber og kan genereres af serveradministratoren. Udviklerne fra Matrix-projektet har klassificeret disse sårbarheder som mindre alvorlige, da sådanne manipulationer ikke vil forblive uset – i tilfælde af en brugerindsættelse vil den vises på listen over chatbrugere, og ved tilføjelse af en enhed vil der blive givet en advarsel, og enheden vil blive markeret som ikke verificeret (samtidig vil fælles nøgler, der er nødvendige for at dekryptere beskeder, begynde at blive sendt til den falske enhed straks efter tilføjelsen).
Kilde: opennet.ru
