Matrix is ​​een open instant messaging-protocol. Het is ontworpen om gebruikers in staat te stellen te communiceren via online chat, voice over IP en videochat.
Onlangs de platformontwikkelaars gedecentraliseerde communicaties «Matrix» heeft een waarschuwing uitgebracht over verschillende kwetsbaarheden die werden gedetecteerd en ze zijn kritisch in de matrix-js-sdk-, matrix-ios-sdk- en matrix-android-sdk2-bibliotheken waarmee serverbeheerders zich kunnen voordoen als andere gebruikers en berichten kunnen lezen van end-to-end versleutelde chats (E2EE).
Er wordt gezegd dat om een ​​aanval met succes te voltooien, moet toegang worden verkregen tot een thuisserver die wordt beheerd door de aanvallers (thuisserver: een server om klantgeschiedenis en accounts op te slaan). Het gebruik van end-to-end-encryptie aan de clientzijde staat de serverbeheerder niet toe om in te grijpen in berichten, maar de geïdentificeerde kwetsbaarheden maken het mogelijk deze bescherming te omzeilen.
Problemen zijn van invloed op de hoofdclient van Element Matrix (voorheen Riot) voor web, desktop, iOS en Android, evenals client-apps van derden zoals Cinny, Beeper, SchildiChat, Circuli en Synod.im.
De kwetsbaarheden komen niet voor in de bibliotheken matrix-rust-sdk, waterstof-sdk, Matrix Dart SDK, mautrix-python, mautrix-go en matrix-nio, evenals Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Gomuks- en Pantalaimon-toepassingen.
Merk op dat kritieke ernstproblemen implementatieproblemen zijn in matrix-js-sdk en afgeleiden, en geen protocolproblemen in Matrix. De nieuwste versie van de paper van de onderzoekers die we hebben gezien, beeldt Element ten onrechte af als "de benchmark-Matrix-client" en verwart implementatiefouten met een hogere ernst met kritiek op het protocol met een lagere ernst.
Er zijn drie scenario's: belangrijkste aanval:
- De Matrix-serverbeheerder kan op emoji gebaseerde verificatie (SAS, Short Authentication Chains) doorbreken door kruiselingse handtekeningen te gebruiken en zich voor te doen als een andere gebruiker. Het probleem wordt veroorzaakt door een kwetsbaarheid (CVE-2022-39250) in de matrix-js-sdk-code die verband houdt met de combinatie van de verwerking van apparaat-ID's en sleutels voor kruiselingse ondertekening.
- Een aanvaller die de server beheert, kan zich voordoen als een vertrouwde afzender en een valse sleutel doorgeven om berichten van andere gebruikers te onderscheppen. Het probleem is te wijten aan een kwetsbaarheid in matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) en matrix-android-sdk2 (CVE-2022-39248), waardoor de De client accepteert ten onrechte berichten die zijn geadresseerd aan gecodeerde apparaten met behulp van het Megolm-protocol in plaats van Olm , waarbij de berichten worden toegeschreven aan de Megolm-afzender in plaats van de daadwerkelijke afzender.
- Door gebruik te maken van de kwetsbaarheden die in de vorige paragraaf zijn genoemd, kan de serverbeheerder ook een dummy reservesleutel aan de gebruikersaccount toevoegen om de sleutels te extraheren die worden gebruikt om berichten te versleutelen.
De onderzoekers die de kwetsbaarheid hebben geïdentificeerd demonstreerde ook aanvallen die een externe gebruiker aan een chat toevoegen of sluit een apparaat van derden aan op de gebruiker. De aanvallen zijn gebaseerd op het feit dat de serviceberichten die worden gebruikt om gebruikers aan de chat toe te voegen, niet zijn gekoppeld aan de sleutels van de maker van de chat en kunnen worden gegenereerd door de serverbeheerder.
De ontwikkelaars van het Matrix-project hebben deze kwetsbaarheden als klein geclassificeerd, aangezien dergelijke manipulaties niet inherent zijn aan Matrix en alleen van invloed zijn op clients op basis van het protocol, maar dit betekent niet dat ze niet onopgemerkt zullen blijven: als een gebruiker wordt vervangen, wordt deze weergegeven in de lijst met chatgebruikers en wanneer deze wordt toegevoegd een apparaat, wordt er een waarschuwing weergegeven en wordt het apparaat gemarkeerd als niet-geverifieerd (in dit geval zal het onmiddellijk na het toevoegen van het niet-geautoriseerde apparaat de openbare sleutels ontvangen die nodig zijn om berichten te decoderen.
U zult merken dat matrix-rust-sdk, waterstof-sdk en andere SDK's van de XNUMXe en XNUMXe generatie niet werden beïnvloed door de bugs in de hoofdoorzaak van kritieke problemen hier. Dit is precies waarom we hebben gewerkt aan het vervangen van de SDK's van de eerste generatie door een schone, zorgvuldig geschreven implementatie van Rust in de vorm van matrix-rust-sdk, compleet met een doorlopende onafhankelijke openbare audit.
Kwetsbaarheden worden veroorzaakt door bugs in individuele implementaties van het Matrix-protocol en het zijn geen problemen van het protocol zelf. Momenteel heeft het project updates uitgebracht voor de problematische SDK's en enkele van de clientapplicaties die daarop zijn gebouwd.
Eindelijk ja je bent geïnteresseerd om er meer over te wetenkunt u de details in het volgende link.