Vývojáři platformy decentralizovaných komunikací Matrix varovali o zjištěných kritických zranitelnostech v knihovnách matrix-js-sdk, matrix-ios-sdk a matrix-android-sdk2, které umožňují správcům serverů vydávat se za jiné uživatele a číst zprávy v chatech s end-to-end šifrováním (E2EE). Zranitelnosti jsou způsobeny chybami v jednotlivých implementacích protokolu Matrix a nejsou problémem samotného protokolu. V současné době vydal projekt aktualizace problematických SDK a části klientských aplikací, které na nich byly postaveny.
Pro úspěšné provedení útoku je potřeba kontaktovat domácí server pod kontrolou útočníka serveru (homeserver – server pro ukládání historie a účtů klientů). Použití end-to-end šifrování na straně klienta neumožňuje adminovi serveru zasahovat do výměny zpráv, avšak zjištěné zranitelnosti umožňují obcházet tuto ochranu. Problémy se týkají hlavního Matrix klienta Element (dříve Riot) pro Web, desktopové systémy, iOS a Android, stejně jako třetích stran klientské aplikace, včetně Cinny, Beeper, SchildiChat, Circuli a Synod.im. Zranitelnosti se neprojevují v knihovnách matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go a matrix-nio, stejně tak v aplikacích Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks a Pantalaimon.
Vybírají se tři hlavní scénáře provedení útoku:
- Správce Matrix serveru může porušit práci s ověřováním na základě emoji (SAS, Short Authentication Strings) při používání křížových podpisů a vydávat se za jiného uživatele. Problém je způsoben zranitelností (CVE-2022-39250) v kódu matrix-js-sdk, která souvisí se smícháním zpracování identifikátorů zařízení a klíčů křížové podpisu.
- Kontrolující činnost serveru útočník může zfalšovat důvěryhodného odesílatele a předat falešný klíč pro odposlech zpráv od jiných uživatelů. Problém je způsoben zranitelností v matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) a matrix-android-sdk2 (CVE-2022-39248), kvůli které klient nesprávně přijímal zprávy adresované zařízeními, šifrované pomocí protokolu Megolm místo Olm, přiřazujíc zprávy odesílateli Megolm, a ne skutečnému odesílateli.
- Použitím zranitelností uvedených v předchozím bodě může správce serveru také přidat falešný záložní klíč do uživatelského účtu pro získání klíčů používaných k šifrování zpráv.
Výzkumníci, kteří objevili zranitelnost, také demonstrovali útoky, které vedou k přidání cizího uživatele do chatu nebo k připojení cizího zařízení k uživateli. Útoky jsou založeny na tom, že služební zprávy používané k přidání uživatelů do chatu nejsou vázány na klíče zakladatele chatu a mohou být generovány správcem serveru. Vývojáři projektu Matrix tyto zranitelnosti označili za méně závažné, protože podobné manipulace nebudou nezpozorovány — v případě výměny uživatele se zobrazí na seznamu uživatelů chatu a při přidání zařízení se zobrazí varování a zařízení bude označeno jako neověřené (přitom po přidání falešného zařízení budou okamžitě začaty přenosy sdílených klíčů potřebných k dešifrování zpráv).
Zdroj: opennet.ru
