Aktualizacja prywatnej wersji beta UmbrellaX
Podczas naszej kontroli bezpieczeństwa znaleźliśmy poważne problemy w kilku bibliotekach typu open source używanych do szyfrowania i bezpiecznej komunikacji. Lokalne poprawki są już gotowe, jednak wymagają jeszcze pełnej weryfikacji i niezależnego przeglądu. Nie wypuszczę wersji beta, dopóki nie będę pewien, że ryzyko to zostało wyeliminowane.
Oto pełna lista w prostym języku. Otwórz sekcję, aby zobaczyć, co może pójść nie tak, codzienny przykład i odniesienie do łatki.
Odszyfrowane sekrety grupy mogą pozostawić dodatkowe kopie w pamięci lub diagnostyce. Zły szyfrogram, wiadomości powitalne, propozycje, ścieżki aktualizacji, brakujące klucze lokalne, błędy liczb losowych, nietypowy czas systemowy i limity epok mogą zamknąć aplikację zamiast zwracać bezpieczny błąd. Niektóre kontrole integralności drzewa i długości ścieżki również nie były gwarantowane w każdej ścieżce wydania.
Na przykład aktualizacja uszkodzonej grupy otrzymana z sieci musi zostać odrzucona bez zamykania komunikatora, pomijania sprawdzania integralności lub ujawniania bajtów wiadomości w raporcie o awarii.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: 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
Usunięte lub zastąpione rekordy MLS mogą pozostawić w pamięci seryjne kopie lub ukryte treści propozycji. Migawki grupowe wymagały zastępowania atomowego o ograniczonym zakresie, dostępu do debugowania wymagały redakcji, a opcjonalny tryb trwałości umożliwiał przechowywanie czytelnego zakodowanego tekstu zamiast uwierzytelnionych zaszyfrowanych danych.
Na przykład usunięcie grupy musi również spowodować usunięcie jej ukrytych oczekujących propozycji, a opcja przechowywania nie może wyglądać na zaszyfrowaną, gdy konwertuje jedynie dane na czytelny tekst.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: openmls_memory_storage 0.5.0 | UMB-119, UMB-212, UMB-213, UMB-214
Nieużywany opcjonalny backend nadal pobierał podatny na ataki pakiet do spisu zależności. Prywatne materiały HPKE również wymagały silniejszej redakcji i oczyszczenia pamięci.
Na przykład backend, którego nie używamy, nie powinien wprowadzać do wydania pakietu znanego z luk w zabezpieczeniach, a wydruk błędu nie może nigdy zawierać klucza prywatnego HPKE.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: hpke-rs 0.6.1 | RUSTSEC-2026-0124
Generator losowy i tymczasowe wartości HPKE wymagały prawdziwego oczyszczenia. Nieudane uwierzytelnione odszyfrowanie może również pozostawić w pamięci częściowo zmodyfikowany bufor tekstu jawnego.
Na przykład, jeśli wiadomość nie zostanie uwierzytelniona, należy natychmiast usunąć w połowie przetworzony bufor zwykłego tekstu.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: hpke-rs-rust-crypto 0.6.1 | UMB-122
Losowy stan, dane wyjściowe wygenerowania klucza, bajty klucza prywatnego i uszkodzone bufory szyfrowania wymagały oczyszczenia. Nieprawidłowe długości jednorazowe i nieobsługiwane żądania wymiany kluczy mogą dotrzeć do ścieżek kończących proces.
Na przykład zniekształcona wartość jednorazowa musi zwrócić normalny błąd zamiast zamykać komunikator.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: openmls_rust_crypto 0.5.1 | UMB-122, UMB-123, UMB-124
Podpisywanie wartości jednorazowych, udziałów, bajtów skalarnych i tymczasowego czytelnego tajnego ciągu wymagało oczyszczenia ścieżek powodzenia i błędów. Nieużywana funkcja również wyciągnęła nieobsługiwany łańcuch zależności.
Na przykład tymczasowe wartości użyte w podpisie grupy nie powinny pozostać czytelne w pamięci po zakończeniu lub niepowodzeniu podpisywania.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: frost-core 3.0.0 | local audited patch
Odrzucone klucze pseudolosowe i pośrednie bloki rozszerzeń klucza mogą pozostać w pamięci po utworzeniu ostatecznego klucza.
Na przykład, gdy klucz sesyjny będzie gotowy, należy usunąć tymczasowe składniki użyte do jego uzyskania.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: hkdf 0.12.4 | local compatibility backport
Pochodne bloki kluczy, skróty kluczy o dużych rozmiarach i wyniki wewnętrznego mieszania w kompatybilnej gałęzi HMAC mogą pozostać w zwykłej pamięci.
Na przykład sprawdzenie, czy wiadomość jest autentyczna, nie powinno pozostawiać bajtów pochodzących z klucza wielokrotnego użytku.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: hmac 0.12.1 | local compatibility backport
Dostępna opcja czyszczenia była domyślnie wyłączona i obejmowała tylko część stanu tymczasowego i zapisanego na podstawie klucza.
Na przykład zakończenie sprawdzania uwierzytelnienia powinno wyczyścić zarówno tymczasowe, jak i przechowywane bloki oparte na kluczach.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: hmac 0.13.0 | local audited patch
Liczniki stanu roboczego i bloków SHA-256 i SHA-512 wymagały czyszczenia w kompatybilnej gałęzi.
Na przykład mieszanie sekretu podczas wyprowadzania klucza nie powinno pozostawiać stanu roboczego silnika mieszającego w pamięci wielokrotnego użytku.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: sha2 0.10.9 | local compatibility backport
Uszkodzone wejście może zażądać ogromnej alokacji, odczytać poza zadeklarowanym polem, zapętlić się bez postępu lub wywołać ścieżki przepełnienia i paniki. Diagnostyka tajnych wektorów i częściowe błędne dane wejściowe również wymagały oczyszczenia.
Na przykład niewielka wiadomość, która fałszywie twierdzi, że zawiera ogromne pole, nie może zużywać dużej ilości pamięci ani powodować wpadania aplikacji w nieskończoną pętlę.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: tls_codec 0.4.2 | local audited patch
Klucz integralności komunikatu STUN można było wydrukować w diagnostyce i nie został on jawnie usunięty za pomocą tymczasowego tekstu poświadczenia.
Na przykład dziennik błędów połączenia nie może ujawniać sekretu użytego do uwierzytelnienia żądania przekazania.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: stun 0.17.1 | audit patch 6e5cbb42
Długowieczne hasło TURN było przechowywane jako zwykły ciąg znaków i wymagało jawnego usunięcia w przypadku zniszczenia klienta.
Na przykład zakończenie połączenia nie powinno pozostawiać hasła przekaźnika w pamięci starego obiektu klienta.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: turn 0.17.1 | audit patch 6e5cbb42
Nazwy użytkowników i hasła TURN były przechowywane jako zwykłe ciągi znaków i automatycznie drukowane w wynikach debugowania ICE.
Na przykład raport połączenia telefonicznego może zawierać informację o istnieniu poświadczeń, ale nie może drukować nazwy użytkownika i hasła.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: webrtc-ice 0.17.1 | audit patch 6e5cbb42
Dane wejściowe dotyczące wyprowadzania klucza multimedialnego, klucze pochodne, przechowywane sole SRTP/SRTCP i stan pracy szyfru wymagały niezawodnego oczyszczenia.
Na przykład po zakończeniu zaszyfrowanego połączenia jego tymczasowe klucze multimedialne i sole nie powinny pozostawać w zwykłych buforach.
Lokalna poprawka przygotowana, weryfikacja w toku.
Szczegóły techniczne: webrtc-srtp 0.17.1 | audit patch 6e5cbb42
Aby śledzić notatki beta i aktualizacje dostępu, obserwuj moje osobiste konto X.