Aggiornamento della beta privata di UmbrellaX
Durante il nostro controllo sulla sicurezza, abbiamo riscontrato seri problemi in diverse librerie open source utilizzate per la crittografia e la comunicazione sicura. Le correzioni locali sono pronte, ma necessitano ancora di verifica completa e revisione indipendente. Non rilascerò la versione beta finché non sarò sicuro che questi rischi siano stati risolti.
Ecco l'elenco completo in un linguaggio semplice. Apri una sezione per vedere cosa potrebbe andare storto, un esempio quotidiano e il riferimento alla patch.
I segreti di gruppo decrittografati potrebbero lasciare copie aggiuntive in memoria o nella diagnostica. Testo cifrato errato, messaggi di benvenuto, proposte, percorsi di aggiornamento, chiavi locali mancanti, errori con numeri casuali, ora di sistema insolita e limiti di epoca potrebbero chiudere l'app invece di restituire un errore sicuro. Inoltre, alcuni controlli sull'integrità dell'albero e sulla lunghezza del percorso non erano garantiti in ogni percorso di rilascio.
Ad esempio, un aggiornamento di gruppo danneggiato ricevuto dalla rete deve essere rifiutato senza chiudere il messenger, saltare un controllo di integrità o esporre i byte del messaggio in un rapporto di arresto anomalo.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: 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
I record MLS cancellati o sostituiti potrebbero lasciare in memoria copie serializzate o corpi di proposta nascosti. Le istantanee del gruppo necessitavano di una sostituzione atomica con ambito, l'accesso al debug richiedeva la redazione e una modalità di persistenza opzionale memorizzava testo codificato leggibile invece di dati crittografati autenticati.
Ad esempio, l'eliminazione di un gruppo deve rimuovere anche le sue proposte nascoste in sospeso e un'opzione di archiviazione non deve apparire crittografata quando converte solo i dati in testo leggibile.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: openmls_memory_storage 0.5.0 | UMB-119, UMB-212, UMB-213, UMB-214
Un backend opzionale non utilizzato ha comunque inserito un pacchetto vulnerabile nell'inventario delle dipendenze. Anche il materiale privato di HPKE necessitava di una redazione e di una pulizia della memoria più efficaci.
Ad esempio, un backend che non utilizziamo non dovrebbe portare in un rilascio un pacchetto noto vulnerabile e una stampa di errore non deve mai contenere una chiave privata HPKE.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: hpke-rs 0.6.1 | RUSTSEC-2026-0124
Il generatore casuale e i valori HPKE temporanei necessitavano di una vera pulizia. La decrittazione autenticata fallita potrebbe anche lasciare in memoria un buffer di testo in chiaro parzialmente modificato.
Ad esempio, quando un messaggio fallisce l'autenticazione, il buffer di testo in chiaro parzialmente elaborato dovrebbe essere cancellato immediatamente.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: hpke-rs-rust-crypto 0.6.1 | UMB-122
Lo stato casuale, l'output della derivazione della chiave, i byte della chiave privata e i buffer di crittografia non riusciti necessitavano di pulizia. Lunghezze nonce non valide e richieste di scambio di chiavi non supportate potrebbero raggiungere percorsi di fine processo.
Ad esempio, un nonce non valido deve restituire un errore normale invece di chiudere il messenger.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: openmls_rust_crypto 0.5.1 | UMB-122, UMB-123, UMB-124
La firma di nonce, condivisioni, byte scalari e una stringa segreta leggibile temporanea richiedeva la pulizia dei percorsi di successo ed errore. Una funzionalità inutilizzata ha anche creato una catena di dipendenze non mantenuta.
Ad esempio, i valori temporanei utilizzati per una firma di gruppo non dovrebbero rimanere leggibili in memoria dopo che la firma è terminata o non è riuscita.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: frost-core 3.0.0 | local audited patch
Le chiavi pseudocasuali scartate e i blocchi intermedi di espansione della chiave potrebbero rimanere in memoria dopo la produzione della chiave finale.
Ad esempio, dopo che una chiave di sessione è pronta, gli ingredienti temporanei utilizzati per ricavarla dovrebbero essere cancellati.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: hkdf 0.12.4 | local compatibility backport
I blocchi di chiavi derivati, i digest di chiavi di grandi dimensioni e i risultati di hash interni nel ramo HMAC compatibile potrebbero rimanere nella memoria ordinaria.
Ad esempio, la verifica dell'autenticità di un messaggio non dovrebbe lasciare dietro di sé byte riutilizzabili derivati da chiavi.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: hmac 0.12.1 | local compatibility backport
L'opzione di pulizia disponibile era disattivata per impostazione predefinita e copriva solo parte dello stato derivato dalla chiave temporanea e archiviata.
Ad esempio, il completamento di un controllo di autenticazione dovrebbe pulire sia i blocchi temporanei che quelli archiviati derivati da chiavi.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: hmac 0.13.0 | local audited patch
Lo stato di funzionamento SHA-256 e SHA-512 e i contatori di blocco richiedevano la pulizia del drop-time sul ramo compatibile.
Ad esempio, l'hashing di un segreto durante la derivazione della chiave non dovrebbe lasciare lo stato di funzionamento del motore hash nella memoria riutilizzabile.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: sha2 0.10.9 | local compatibility backport
Un input danneggiato potrebbe richiedere un'allocazione enorme, leggere oltre il campo dichiarato, eseguire un loop senza avanzamento o attivare percorsi di overflow e panico. Anche la diagnostica vettoriale segreta e l'input parziale non riuscito necessitavano di pulizia.
Ad esempio, un piccolo messaggio che afferma falsamente di contenere un campo enorme non deve consumare una memoria enorme o intrappolare l'app in un ciclo infinito.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: tls_codec 0.4.2 | local audited patch
La chiave di integrità del messaggio STUN potrebbe essere stampata nella diagnostica e non è stata cancellata esplicitamente con il testo della credenziale temporanea.
Ad esempio, un registro degli errori di connessione non deve rivelare il segreto utilizzato per autenticare una richiesta di inoltro.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: stun 0.17.1 | audit patch 6e5cbb42
Una password TURN di lunga durata veniva archiviata come una stringa ordinaria e necessitava di una cancellazione esplicita quando il client veniva distrutto.
Ad esempio, la fine di una chiamata non dovrebbe lasciare la password di inoltro nella memoria del vecchio oggetto client.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: turn 0.17.1 | audit patch 6e5cbb42
I nomi utente e le password di TURN sono stati archiviati come stringhe ordinarie e stampati automaticamente nell'output di debug ICE.
Ad esempio, un report di connessione della chiamata potrebbe indicare che le credenziali esistono, ma non deve stampare il nome utente e la password.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: webrtc-ice 0.17.1 | audit patch 6e5cbb42
L'input di derivazione della chiave multimediale, le chiavi derivate, i salt SRTP/SRTCP archiviati e lo stato di funzionamento della crittografia necessitavano di una pulizia affidabile.
Ad esempio, al termine di una chiamata crittografata, le chiavi multimediali temporanee e i sali non dovrebbero rimanere nei buffer ordinari.
Correzione locale preparata, verifica in corso.
Dettagli tecnici: webrtc-srtp 0.17.1 | audit patch 6e5cbb42
Per note sulla beta e aggiornamenti di accesso, segui il mio account personale su X.