Nyligen plattformsutvecklare decentraliserad kommunikations «Matrix» släppte en varning om olika sårbarheter som upptäcktes och de är kritiska i biblioteken matrix-js-sdk, matrix-ios-sdk och matrix-android-sdk2 som tillåter serveradministratörer att utge sig för andra användare och läsa meddelanden från krypterade chattar från ände till ände (E2EE).
Det nämns det för att framgångsrikt slutföra en attack måste en hemserver som kontrolleras av angriparna nås (hemserver: en server för att lagra klienthistorik och konton). Användningen av end-to-end-kryptering på klientsidan tillåter inte serveradministratören att ingripa i meddelandehantering, men de identifierade sårbarheterna gör att detta skydd kan kringgås.
Problem påverkar den huvudsakliga Element Matrix-klienten (tidigare Riot) för webb, stationär, iOS och Android, såväl som tredjepartsklientappar som Cinny, Beeper, SchildiChat, Circuli och Synod.im.
Sårbarheterna visas inte i biblioteken matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go och matrix-nio, samt Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Gomuks och Pantalaimon applikationer.
Observera att kritiska allvarlighetsproblem är implementeringsproblem i matrix-js-sdk och derivator, och är inte protokollproblem i Matrix. Den senaste versionen av forskarnas uppsats som vi har sett framställer Element felaktigt som "the benchmark Matrix-klienten" och blandar ihop implementeringsfel med högre allvarlighetsgrad med protokollkritik av lägre allvarlighetsgrad.
Det finns tre scenarier huvudattack:
- Matrix-serveradministratören kan bryta emoji-baserad verifiering (SAS, Short Authentication Chains) genom att använda korssignaturer och utge sig för en annan användare. Problemet orsakas av en sårbarhet (CVE-2022-39250) i matrix-js-sdk-koden relaterad till kombinationen av enhets-ID-hantering och korssigneringsnycklar.
- En angripare som kontrollerar servern kan utge sig för att vara en betrodd avsändare och skicka en falsk nyckel för att fånga upp meddelanden från andra användare. Problemet beror på en sårbarhet i matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) och matrix-android-sdk2 (CVE-2022-39248), som orsakade Klienten accepterar felaktigt meddelanden adresserade till krypterade enheter som använder Megolm-protokollet istället för Olm , och tillskriver meddelandena till Megolm-avsändaren istället för den faktiska avsändaren.
- Genom att utnyttja sårbarheterna som nämns i föregående stycke kan serveradministratören också lägga till en dummy reservnyckel till användarkontot för att extrahera nycklarna som används för att kryptera meddelanden.
Forskarna som identifierade sårbarheten demonstrerade också attacker som lägger till en tredjepartsanvändare till en chatt eller anslut en tredjepartsenhet till användaren. Attackerna baseras på att tjänstmeddelandena som används för att lägga till användare i chatten inte är kopplade till chattskaparens nycklar och kan genereras av serveradministratören.
Utvecklarna av Matrix-projektet klassade dessa sårbarheter som mindre, eftersom sådana manipulationer inte är inneboende i Matrix och bara påverkar klienter baserat på protokollet, men det betyder inte att de inte kommer att gå obemärkt förbi: om en användare ersätts kommer den att visas i listan över chattanvändare och när den läggs till en enhet, kommer en varning att visas och enheten kommer att markeras som overifierad (i detta fall, omedelbart efter att den obehöriga enheten har lagts till, kommer den att börja ta emot de publika nycklar som behövs för att dekryptera meddelanden.
Du kommer att märka att matrix-rust-sdk, hydrogen-sdk och andra XNUMX:a och XNUMX:e generationens SDK:er inte påverkades av felen i grundorsaken till kritiska problem här. Det är just därför vi har arbetat för att ersätta den första generationens SDK:er med en ren, noggrant skriven implementering av Rust i form av matrix-rust-sdk, komplett med en pågående oberoende offentlig revision.
Sårbarheter orsakas av buggar i enskilda implementeringar av Matrix-protokollet och de är inte problem med själva protokollet. För närvarande har projektet släppt uppdateringar för de problematiska SDK:erna och några av klientapplikationerna som byggts ovanpå dem.
Äntligen ja du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.