Os desenvolvedores da plataforma de comunicações descentralizadas Matrix alertaram sobre a descoberta de vulnerabilidades críticas nas bibliotecas matrix-js-sdk, matrix-ios-sdk e matrix-android-sdk2, permitindo que administradores de servidores se passassem por outros usuários e lessem mensagens em chats com criptografia de ponta a ponta (E2EE). As vulnerabilidades foram causadas por erros em implementações específicas do protocolo Matrix e não são problemas do próprio protocolo. Atualmente, o projeto lançou atualizações para os SDK problemáticos e para algumas aplicações cliente desenvolvidas com base neles.
Para que um ataque seja bem-sucedido, é necessário o acesso ao servidor doméstico controlado pelo atacante servidor (homeserver — servidor para armazenamento de históricos e contas de clientes). A aplicação de criptografia de ponta a ponta do lado do cliente não permite que o administrador servidor interfira na troca de mensagens, mas as vulnerabilidades descobertas possibilitam contornar essa proteção. Os problemas afetam o cliente principal do Matrix, Element (anteriormente Riot), para Web, sistemas desktop, iOS e Android, bem como aplicações cliente de terceiros, incluindo Cinny, Beeper, SchildiChat, Circuli e Synod.im. As vulnerabilidades não se manifestam nas bibliotecas matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go e matrix-nio, assim como em aplicações como Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks e Pantalaimon.
Três cenários principais de ataque são identificados:
- O administrador do servidor Matrix pode comprometer a verificação baseada em emoji (SAS, Short Authentication Strings) ao usar assinaturas cruzadas e se passar por outro usuário. O problema é causado pela vulnerabilidade (CVE-2022-39250) no código matrix-js-sdk, relacionada à mistura no processamento de identificadores de dispositivos e chaves de assinatura cruzada.
- Um atacante controlando o servidor pode falsificar um remetente de confiança e fornecer uma chave falsa para interceptar mensagens de outros usuários. O problema é causado por uma vulnerabilidade na matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) e matrix-android-sdk2 (CVE-2022-39248), que faz com que o cliente aceite incorretamente mensagens destinadas a dispositivos, criptografadas usando o protocolo Megolm em vez de Olm, atribuindo as mensagens ao remetente Megolm, em vez do remetente real.
- Ao utilizar as vulnerabilidades mencionadas no ponto anterior, o administrador do servidor também pode adicionar uma chave de backup falsa à conta do usuário para extrair as chaves utilizadas para a criptografia das mensagens.
Os pesquisadores que identificaram a vulnerabilidade também demonstraram ataques que levaram à adição de um usuário externo ao chat ou à conexão de um dispositivo desconhecido ao usuário. Os ataques se baseiam no fato de que as mensagens de serviço usadas para adicionar usuários ao chat não estão vinculadas às chaves do criador do chat e podem ser geradas pelo administrador do servidor. Os desenvolvedores do projeto Matrix classificaram essas vulnerabilidades como menores, uma vez que tais manipulações não passarão despercebidas — no caso de um usuário ser substituído, ele aparecerá na lista de usuários do chat, e ao adicionar um dispositivo, um aviso será exibido, enquanto o dispositivo será marcado como não verificado (após a adição, a chave compartilhada necessária para decifrar as mensagens começará a ser transmitida para o dispositivo substituto).
Fonte: opennet.ru
