Detectou várias vulnerabilidades que comprometem muitos clientes Matrix

protocolo de matriz

Matrix é um protocolo aberto de mensagens instantâneas. Ele foi projetado para permitir que os usuários se comuniquem por meio de bate-papo online, voz sobre IP e bate-papo por vídeo.

Recentemente, os desenvolvedores da plataforma de comunicações descentralizadas "Matrix" divulgaram um alerta sobre diversas vulnerabilidades críticas detectadas nas bibliotecas matrix-js-sdk, matrix-ios-sdk e matrix-android-sdk2, que permitem que administradores de servidores se passem por outros usuários e leiam mensagens de bate-papo criptografadas de ponta a ponta (E2EE).

É mencionado que, para concluir um ataque com sucesso, é necessário acesso a um servidor doméstico controlado pelos atacantes (servidor doméstico: um servidor usado para armazenar o histórico e as contas dos clientes). O uso de criptografia de ponta a ponta no lado do cliente impede que o administrador do servidor interfira nas mensagens, mas as vulnerabilidades identificadas permitem que essa proteção seja contornada.

Os problemas afetam o cliente principal do Element Matrix (anteriormente Riot) para Web, desktop, iOS e Android, bem como aplicativos de terceiros como Cinny, Beeper, SchildiChat, Circuli e Synod.im.

As vulnerabilidades não aparecem nas bibliotecas matrix-rust-sdk, hidrogênio-sdk, Matrix Dart SDK, mautrix-python, mautrix-go e matrix-nio, bem como Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Gomuks e aplicativos Pantalaimon.

Observe que os problemas críticos de gravidade são problemas de implementação em matrix-js-sdk e derivados e não são problemas de protocolo em Matrix. A versão mais recente do artigo dos pesquisadores que vimos retrata incorretamente o Element como "o cliente Matrix de referência" e confunde erros de implementação de maior gravidade com críticas de protocolo de menor gravidade.

Existem três cenários principais de ataque :

  1. O administrador do servidor Matrix pode interromper a verificação baseada em emoji (SAS, Short Authentication Chains) usando assinaturas cruzadas e representando outro usuário. O problema é causado por uma vulnerabilidade (CVE-2022-39250) no código matrix-js-sdk relacionado à combinação de manipulação de ID de dispositivo e chaves de assinatura cruzada.
  2. Um invasor que controla o servidor pode se passar por um remetente confiável e passar uma chave falsa para interceptar mensagens de outros usuários. O problema é devido a uma vulnerabilidade no matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) e matrix-android-sdk2 (CVE-2022-39248), que causou O cliente aceita incorretamente mensagens endereçadas a dispositivos criptografados usando o protocolo Megolm em vez de Olm , atribuindo as mensagens ao remetente Megolm em vez do remetente real.
  3. Ao explorar as vulnerabilidades mencionadas no parágrafo anterior, o administrador do servidor também pode adicionar uma chave sobressalente fictícia à conta do usuário para extrair as chaves usadas para criptografar as mensagens.

Os pesquisadores que identificaram a vulnerabilidade também demonstraram ataques que adicionam um usuário de terceiros a um chat ou conectam um dispositivo de terceiros ao usuário. Esses ataques exploram o 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 , visto que tais manipulações não são específicas do Matrix e afetam apenas clientes baseados no protocolo. No entanto, isso não significa que elas passarão despercebidas: se um usuário for substituído, isso será exibido na lista de usuários do chat, e quando um dispositivo for adicionado, um aviso será exibido e o dispositivo será marcado como não verificado (nesse caso, imediatamente após a adição do dispositivo não autorizado, ele começará a receber as chaves públicas necessárias para descriptografar as mensagens).

Você notará que matrix-rust-sdk, hidrogênio-sdk e outros SDKs de XNUMXª e XNUMXª geração não foram afetados pelos bugs na causa raiz de problemas críticos aqui. É exatamente por isso que estamos trabalhando para substituir os SDKs de primeira geração por uma implementação limpa e cuidadosamente escrita do Rust na forma de matrix-rust-sdk, completa com uma auditoria pública independente em andamento.

As vulnerabilidades são causadas por erros em implementações individuais do protocolo Matrix e não são problemas com o protocolo em si. O projeto já lançou atualizações para os SDKs afetados e para alguns dos aplicativos cliente baseados neles.

Por fim, se tiver interesse em saber mais sobre isso , você pode encontrar os detalhes no seguinte link.


Adicionar como fonte preferencial no Google