O problema é causado por um bug no matrix-js-sdk, no qual um invasor em conluio com um servidor doméstico malicioso poderia interferir no fluxo de verificação entre dois usuários, injetando sua própria identidade de usuário com assinatura cruzada no lugar da identidade de um dos usuários. Isso levaria o outro dispositivo a confiar/verificar a identidade do usuário sob o controle do servidor doméstico, em vez da identidade pretendida. A vulnerabilidade é parcialmente possibilitada pela decisão de design de tratar identidades de usuário com assinatura cruzada como dispositivos Matrix no lado do servidor. Nenhuma outra implementação examinada apresentou vulnerabilidade. A partir da versão 19.7.0, o matrix-js-sdk foi modificado para verificar novamente se a chave assinada é a mesma que foi verificada, em vez de apenas referenciar a chave pelo ID. Uma verificação adicional foi implementada para relatar um erro quando um dos IDs de dispositivo corresponder a uma chave de assinatura cruzada.