Hace poco los desarrolladores de la plate-forme de communications décentraliséess «Matrix» dieron a conocer una advertencia sobre varias vulnerabilidades que fueron detectadas y que fils critiques dans las bibliotecas matrix-js-sdk, matrix-ios-sdk et matrix-android-sdk2 qui permettent aux administrateurs du serveur d’accéder à d’autres utilisateurs et lire les messages de l’extrême à l’extrême des chats cryptés (E2EE).
Se menciona que para compléterar con éxito un ataque, se debe acceder a un servidor doméstico controlado por los atacantes (servidor doméstico : un servidor para almacenar el historial y las cuentas de los clientes). El uso de cifrado de extremo a extremo en el lado del cliente no permite que el administrador del servidor intervenga en la mensajería, pero las vulnerabilidades identificadas permiten eludir esta protección.
Les problèmes affectent le client principal de Element Matrix (antémeute) para Web, escritorio, iOS et Android, ainsi que des applications de clients de terceros, comme Cinny, Beeper, SchildiChat, Circuli et Synod.im.
Les vulnérabilités n’apparaissent pas dans les bibliothèques matrix-rust-sdk, Hydrogen-sdk, Matrix Dart SDK, Mautrix-python, Mautrix-go et Matrix-nio, ainsi que Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Gomuks et Applications Pantalaimon.
Tenga en cuenta que los problemas de gravedad crítica son problemas de implementation en matrix-js-sdk y derivados, y no son problemas de protocolo en Matrix. La dernière version de l’article de los enquêteurs qu’il a visto presenta incorrectamente a Element como «el cliente Matrix de referencia» et confond les erreurs de mise en œuvre de mayor gravedad avec la critique del protocolo de menor gravedad.
Hay tres scénarios principales d’attaque :
- L’administrateur du serveur de Matrix puede romper la vérification basada en emoji (SAS, Cadenas de autenticación cortas) al usar firmas cruzadas y hacerse pasar por otro usuario. Le problème est dû à une vulnérabilité (CVE-2022-39250) dans le code matrix-js-sdk associé à la combinaison du manejo de l’ID de dispositifs et des clés de la firme croisée.
- Un atacante que controla el servidor puede suplantar a un remitente confiable y pasar una clave falsa para interceptar mensajes de otros usuarios. Le problème est dû à une vulnérabilité dans matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) et matrix-android-sdk2 (CVE-2022-39248), ce qui a causé la cliente accepte incorrectamente mensajes dirigidos a dispositivos cifrados mediante el protocolo Megolm en lugar de Olm , atribuyendo los mensajes al remitente de Megolm en lugar del remitente real.
- Al explotar las vulnerabilidades mencionadas en el párrafo anterior, el administrador del servidor también puede agregar una clave de repuesto ficticia a la cuenta de usuario para extraer las claves utilizadas para cifrar los mensajes.
Les enquêteurs qui identifient la vulnérabilité también demostraron ataques que agregan un usuario de terceros a un chat o conectan un dispositivo de terceros al usuario. Los ataques se basan en el hecho de que los mensajes de servicio utilizados para agregar usuarios al chat no están vinculados a las claves del creador del chat y pueden ser generados por el administrador del servidor.
Los desarrolladores del proyecto Matrix clasificaron estas vulnerabilidades como minoresya que tales manipulaciones no son propias de Matrix y solo afectan a clientes basados en el protocolo, pero esto no quiere decir que no pasarán desapercibidas: si se sustituye un usuario, se mostrará en la lista de usuarios del chat, y cuando se agregue un dispositivo, se mostrará una advertencia y el dispositivo se marcará como no verificado (en este caso, inmediatamente después de agregar el dispositivo no autorizado, comenzará a recibir las claves públicas necesarias para descifrar los mensajes.
Notez que matrix-rust-sdk, Hydrogen-sdk et d’autres SDK de deuxième génération et de troisième génération ne sont plus touchés par les erreurs en raison des problèmes critiques ci-dessus. Esta es precisamente la razón por la que hemos estado trabajando para reemplazar los SDK de primera generación con una implementation de Rust limpia y cuidadosamente escrita in forma de matrix-rust-sdk, completea con a a auditoría pública independiente in curso.
Las vulnerabilidades son causadas por errores en implementaciones individuales del protocolo Matrice y aucun fils problemas del protocolo en sí. Actuellement, le projet a été publié pour les problèmes SDK et les algunas de las aplicaciones cliente creadas sobre esta base.
Enfin si estás interesado en poder conocer más al respectopuedes consultar los detalles en el siguiente enlace.