Mise à jour bêta privée d'UmbrellaX
Lors de notre examen de sécurité, nous avons découvert de sérieux problèmes dans plusieurs bibliothèques open source utilisées pour le chiffrement et les communications sécurisées. Les correctifs locaux sont prêts, mais ils doivent encore être entièrement vérifiés et examinés de façon indépendante. Je ne publierai pas la version bêta tant que je ne serai pas certain que ces risques sont éliminés.
Voici la liste complète en termes simples. Ouvrez une section pour voir le risque, un exemple concret et la référence du correctif.
Les secrets de groupe déchiffrés peuvent laisser des copies supplémentaires en mémoire ou dans les diagnostics. Un texte chiffré incorrect, des messages de bienvenue, des propositions, des chemins de mise à jour, des clés locales manquantes, des échecs de nombres aléatoires, une heure système inhabituelle et des limites d'époque pourraient fermer l'application au lieu de renvoyer une erreur de sécurité. Certaines vérifications de l'intégrité de l'arborescence et de la longueur du chemin n'étaient pas non plus garanties dans chaque chemin de version.
Par exemple, une mise à jour de groupe endommagée reçue du réseau doit être rejetée sans fermer l'application, ignorer un contrôle d'intégrité ni exposer le contenu d'un message dans un rapport de plantage.
Correctif local préparé, vérification en cours.
Détails techniques: openmls 0.8.1 | UMB-117, UMB-118, UMB-120, UMB-121, UMB-125, UMB-128, UMB-129, UMB-130, UMB-131, UMB-132, UMB-133, UMB-134, UMB-135, UMB-136, UMB-137, UMB-138, UMB-139
Les enregistrements MLS supprimés ou remplacés pourraient laisser des copies sérialisées ou des corps de proposition cachés en mémoire. Les instantanés de groupe nécessitaient un remplacement atomique étendu, un accès au débogage nécessitait une rédaction et un mode de persistance facultatif stockait du texte codé lisible au lieu de données cryptées authentifiées.
Par exemple, la suppression d'un groupe doit également supprimer ses propositions masquées en attente, et une option de stockage ne doit pas paraître cryptée lorsqu'elle convertit uniquement les données en texte lisible.
Correctif local préparé, vérification en cours.
Détails techniques: openmls_memory_storage 0.5.0 | UMB-119, UMB-212, UMB-213, UMB-214
Un backend facultatif inutilisé a quand même extrait un package vulnérable dans l’inventaire des dépendances. Le matériel privé HPKE nécessitait également une rédaction et un nettoyage de la mémoire plus approfondis.
Par exemple, un backend que nous n'utilisons pas ne doit pas introduire de package vulnérable connu dans une version, et une impression d'erreur ne doit jamais contenir de clé privée HPKE.
Correctif local préparé, vérification en cours.
Détails techniques: hpke-rs 0.6.1 | RUSTSEC-2026-0124
Le générateur aléatoire et les valeurs HPKE temporaires nécessitaient un véritable nettoyage. Un déchiffrement authentifié échoué pourrait également laisser un tampon de texte en clair partiellement modifié en mémoire.
Par exemple, lorsqu'un message échoue à l'authentification, le tampon de texte en clair à moitié traité doit être immédiatement effacé.
Correctif local préparé, vérification en cours.
Détails techniques: hpke-rs-rust-crypto 0.6.1 | UMB-122
L'état aléatoire, la sortie de dérivation de clé, les octets de clé privée et les tampons de chiffrement défaillants nécessitaient un nettoyage. Des longueurs nonce non valides et des demandes d'échange de clés non prises en charge pourraient atteindre des chemins de fin de processus.
Par exemple, un nom occasionnel mal formé doit renvoyer une erreur normale au lieu de fermer le messager.
Correctif local préparé, vérification en cours.
Détails techniques: openmls_rust_crypto 0.5.1 | UMB-122, UMB-123, UMB-124
La signature des noms occasionnels, des partages, des octets scalaires et d'une chaîne secrète lisible temporaire nécessitait un nettoyage des chemins de réussite et d'erreur. Une fonctionnalité inutilisée a également tiré une chaîne de dépendances non maintenue.
Par exemple, les valeurs temporaires utilisées pour une signature de groupe ne doivent pas rester lisibles en mémoire une fois la signature terminée ou échouée.
Correctif local préparé, vérification en cours.
Détails techniques: frost-core 3.0.0 | local audited patch
Les clés pseudo-aléatoires abandonnées et les blocs d'extension de clé intermédiaires pouvaient rester en mémoire après la production d'une clé finale.
Par exemple, une fois qu'une clé de session est prête, les ingrédients temporaires utilisés pour la dériver doivent être effacés.
Correctif local préparé, vérification en cours.
Détails techniques: hkdf 0.12.4 | local compatibility backport
Les blocs de clés dérivés, les résumés de clés surdimensionnés et les résultats de hachage internes dans la branche HMAC compatible peuvent rester dans la mémoire ordinaire.
Par exemple, la vérification de l’authenticité d’un message ne doit pas laisser derrière elle des octets réutilisables dérivés de clés.
Correctif local préparé, vérification en cours.
Détails techniques: hmac 0.12.1 | local compatibility backport
L'option de nettoyage disponible était désactivée par défaut et ne couvrait qu'une partie de l'état dérivé de la clé temporaire et stocké.
Par exemple, effectuer une vérification d’authentification doit nettoyer les blocs dérivés de clés temporaires et stockés.
Correctif local préparé, vérification en cours.
Détails techniques: hmac 0.13.0 | local audited patch
L’état de fonctionnement et les compteurs de blocs SHA-256 et SHA-512 nécessitaient un nettoyage au temps de chute sur la branche compatible.
Par exemple, le hachage d'un secret lors de la dérivation de clé ne doit pas laisser l'état de fonctionnement du moteur de hachage dans une mémoire réutilisable.
Correctif local préparé, vérification en cours.
Détails techniques: sha2 0.10.9 | local compatibility backport
Une entrée endommagée pourrait demander une allocation énorme, lire au-delà de son champ déclaré, boucler sans progression ou déclencher des chemins de débordement et de panique. Les diagnostics vectoriels secrets et les échecs partiels d’entrée nécessitaient également un nettoyage.
Par exemple, un petit message qui prétend faussement contenir un champ énorme ne doit pas consommer énormément de mémoire ni piéger l'application dans une boucle sans fin.
Correctif local préparé, vérification en cours.
Détails techniques: tls_codec 0.4.2 | local audited patch
La clé d'intégrité du message STUN pouvait être imprimée dans les diagnostics et n'était pas explicitement effacée avec le texte d'identification temporaire.
Par exemple, un journal d'erreurs de connexion ne doit pas révéler le secret utilisé pour authentifier une demande de relais.
Correctif local préparé, vérification en cours.
Détails techniques: stun 0.17.1 | audit patch 6e5cbb42
Un mot de passe TURN de longue durée était stocké sous forme de chaîne ordinaire et devait être explicitement effacé lorsque le client était détruit.
Par exemple, mettre fin à un appel ne doit pas laisser son mot de passe de relais dans la mémoire de l'ancien objet client.
Correctif local préparé, vérification en cours.
Détails techniques: turn 0.17.1 | audit patch 6e5cbb42
Les noms d'utilisateur et les mots de passe TURN étaient stockés sous forme de chaînes ordinaires et automatiquement imprimés dans la sortie de débogage ICE.
Par exemple, un rapport de connexion d'appel peut indiquer que les informations d'identification existent, mais il ne doit pas imprimer le nom d'utilisateur et le mot de passe.
Correctif local préparé, vérification en cours.
Détails techniques: webrtc-ice 0.17.1 | audit patch 6e5cbb42
L'entrée de dérivation de clé multimédia, les clés dérivées, les sels SRTP/SRTCP stockés et l'état de fonctionnement du chiffrement nécessitaient un nettoyage fiable.
Par exemple, après la fin d’un appel chiffré, ses clés multimédias et sels temporaires ne doivent pas rester dans les tampons ordinaires.
Correctif local préparé, vérification en cours.
Détails techniques: webrtc-srtp 0.17.1 | audit patch 6e5cbb42
Pour les notes beta et les mises à jour d'accès, suivez mon compte X personnel.