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 desenvolvedores de plataforma comunicações descentralizadass «Matrix» lançou um aviso sobre várias vulnerabilidades que foram detectados e eles são críticos nas bibliotecas matrix-js-sdk, matrix-ios-sdk e matrix-android-sdk2 que permitem que administradores de servidor representem outros usuários e leiam mensagens de bate-papos criptografados de ponta a ponta (E2EE).

É mencionado que para concluir um ataque com sucesso, um servidor doméstico controlado pelos invasores deve ser acessado (home server: um servidor para armazenar o histórico e as contas do cliente). O uso de criptografia de ponta a ponta no lado do cliente não permite que o administrador do servidor intervenha 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 clientes 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 ataque principal:

  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 demonstrou ataques que adicionam um usuário de terceiros a um bate-papo ou conecte um dispositivo de terceiros 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 são inerentes ao Matrix e afetam apenas clientes baseados no protocolo, mas isso não significa que não passarão despercebidos: se um usuário for substituído, ele será mostrado na lista de usuários do chat, e quando adicionado um dispositivo, um aviso será exibido e o dispositivo será marcado como não verificado (neste caso, imediatamente após adicionar o 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.

Vulnerabilidades são causadas por bugs em implementações individuais do protocolo Matrix e não são problemas do próprio protocolo. Atualmente, o projeto lançou atualizações para os SDKs problemáticos e alguns dos aplicativos cliente construídos sobre eles.

Enfim sim você está interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir


O conteúdo do artigo segue nossos princípios de Ética editorial. Para relatar um erro, clique Clique aqui.

Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado.

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.