Se han identificado vulnerabilidades en la mayoría de las aplicaciones de cliente para la plataforma de comunicaciones descentralizadas Matrix (CVE-2021-40823, CVE-2021-40824), que permiten obtener información sobre las claves utilizadas para enviar mensajes en chats con cifrado de extremo a extremo (E2EE). Un atacante que comprometa a uno de los usuarios del chat puede descifrar los mensajes enviados anteriormente a este usuario desde aplicaciones de cliente vulnerables.
Para explotar con éxito se requiere acceso a la cuenta del destinatario de los mensajes. Este acceso puede obtenerse a través de la filtración de parámetros de la cuenta o mediante el hackeo del servidor Matrix al que se conecta el usuario. Las vulnerabilidades representan el mayor peligro para los usuarios de salas de chat cifradas que están conectados a servidores Matrix controlados por atacantes. Los administradores de esos servidores pueden intentar hacerse pasar por usuarios del servidor para interceptar mensajes enviados en el chat desde aplicaciones de cliente vulnerables.
Las vulnerabilidades son causadas por errores lógicos en las implementaciones del mecanismo de reautenticación de claves, propuesto en matrix-js-sdk < 12.4.1 (CVE-2021-40823), matrix-android-sdk2 < 1.2.2 (CVE-2021-40824), matrix-rust-sdk < 0.4.0, FamedlySDK < 0.5.0 y Nheko ≤ 0.8.2. Las implementaciones basadas en las bibliotecas matrix-ios-sdk, matrix-nio y libolm no son vulnerables.
Por lo tanto, las vulnerabilidades se manifiestan en todas las aplicaciones que han tomado prestado el código problemático y no afectan directamente a los protocolos Matrix y Olm/Megolm. En particular, el problema afecta al cliente Matrix principal, Element (anteriormente Riot), para Web, sistemas de escritorio y Android, así como a aplicaciones y bibliotecas de clientes de terceros, incluyendo FluffyChat, Nheko, Cinny y SchildiChat. El problema no se presenta en el cliente oficial para la plataforma iOS, así como en las aplicaciones Chatty, Hydrogen, mautrix, purple-matrix y Syphon.
Las vulnerabilidades se identificaron durante una auditoría de seguridad del cliente Element. Se han lanzado correcciones para todos los clientes afectados. Se recomienda a los usuarios que instalen urgentemente las actualizaciones y, antes de instalar la actualización, pasen los clientes a modo offline. No se han encontrado pruebas de explotación de la vulnerabilidad antes de la publicación de la corrección. Según los registros estándar del cliente y servidores Determinar la existencia de un ataque es imposible, pero dado que para un ataque se requiere la compromisión de una cuenta, los administradores pueden analizar la presencia de accesos sospechosos en los registros de autenticación en sus servidores, y los usuarios pueden revisar la lista de dispositivos vinculados a su cuenta en busca de reconexiones recientes y cambios en el estado de confianza.
El mecanismo de acceso compartido a claves (key sharing), en el cual se han encontrado vulnerabilidades, permite al cliente que no tiene las claves para descifrar un mensaje pedir las claves al dispositivo emisor o a otros de sus dispositivos. Por ejemplo, esta capacidad es necesaria para permitir el desciframiento de mensajes antiguos en un nuevo dispositivo del usuario o en caso de que el usuario haya perdido las claves que tenía. La especificación del protocolo prescribe no responder a las solicitudes de claves por defecto y enviar automáticamente las claves solo a dispositivos verificados del mismo usuario. Desafortunadamente, en las implementaciones prácticas, este requisito no se ha cumplido y las solicitudes para enviar claves se han procesado sin la debida identificación del dispositivo.
Fuente: opennet.ru
