Krytyczna luka w Signal pozwalała złośliwym rozmówcom blokować rozłączenie połączenia - Security Bez Tabu

Krytyczna luka w Signal pozwalała złośliwym rozmówcom blokować rozłączenie połączenia

Cybersecurity news

Wprowadzenie do problemu / definicja

W komunikatorach oferujących szyfrowanie end-to-end bezpieczeństwo nie kończy się na ochronie treści wiadomości. Równie istotne jest poprawne działanie mechanizmów sterujących sesją, w tym niezawodne kończenie połączeń głosowych i wideo. Ujawniona podatność w bibliotece RingRTC, wykorzystywanej przez Signal do realizacji połączeń, pokazała, że błąd logiki aplikacyjnej może prowadzić do poważnego naruszenia prywatności nawet bez złamania kryptografii.

W skrócie

Problem dotyczył krytycznej podatności oznaczonej jako CVE-2026-113380, ocenionej na 9.3 w skali CVSS. Błąd występował w bibliotece RingRTC, opartej na WebRTC i używanej przez Signal do połączeń audio oraz wideo. Atakujący mógł przeciążyć kolejkę zdarzeń automatu stanowego połączenia, przez co żądanie rozłączenia nie było przetwarzane prawidłowo.

W praktyce oznaczało to możliwość utrzymania aktywnych strumieni audio, a potencjalnie również wideo, mimo że ofiara była przekonana, że zakończyła rozmowę. Problem został usunięty w wersji RingRTC 2.72.0, a użytkownikom zalecono pilną aktualizację aplikacji.

Kontekst / historia

Signal jest powszechnie postrzegany jako jeden z najbardziej zaufanych komunikatorów z punktu widzenia prywatności, dlatego każda podatność dotycząca jego warstwy komunikacyjnej przyciąga szczególną uwagę. Opisana luka nie dotyczyła szyfrowania wiadomości ani przejęcia kluczy, lecz implementacji obsługi połączeń w otwartoźródłowej bibliotece RingRTC.

Według ujawnionych informacji błąd został naprawiony we wrześniu 2026 roku wraz z wydaniem RingRTC 2.72.0, natomiast szczegóły techniczne oraz koncepcyjny proof-of-concept opublikowano później. Tego typu sekwencja jest typowa dla odpowiedzialnego ujawniania podatności: najpierw wdrożenie poprawki, a następnie publikacja szerszych informacji technicznych.

Analiza techniczna

Sedno problemu tkwiło w sposobie obsługi zdarzeń przez automat stanowy połączenia, czyli Finite State Machine. W wadliwej implementacji operacja rozłączenia nie była traktowana jako mechanizm natychmiastowego zatrzymania sesji, lecz jako jedno z wielu zdarzeń umieszczanych w kolejce do późniejszego przetworzenia.

Atakujący, działający jako zdalny uczestnik połączenia, mógł generować dużą liczbę zbędnych zdarzeń i wypełniać nimi kolejkę. Ponieważ po stronie biblioteki brakowało odpowiedniego limitowania zdarzeń pochodzących od peera oraz priorytetyzacji samego zdarzenia zakończenia rozmowy, żądanie rozłączenia mogło zostać skutecznie zablokowane przez sztucznie wygenerowany szum operacyjny.

Z perspektywy architektury bezpieczeństwa był to błąd sterowania przepływem i zarządzania stanem, a nie klasyczna podatność pamięciowa. To ważne rozróżnienie, ponieważ pokazuje, że nawet system korzystający z nowoczesnych mechanizmów kryptograficznych może być podatny na ataki wynikające z błędów logiki biznesowej i sterowania sesją. W tym przypadku skutkiem nie było wykonanie kodu, lecz utrzymanie aktywnej sesji medialnej wbrew intencji użytkownika.

Naprawa polegała na przeprojektowaniu mechanizmu kończenia połączenia tak, aby żądanie rozłączenia nie pozostawało zależne od zablokowanej kolejki zdarzeń FSM i mogło być wykrywane oraz obsługiwane niezależnie. W praktyce zmieniło to semantykę rozłączenia z kolejnego zdarzenia na operację nadrzędną.

Konsekwencje / ryzyko

Najpoważniejszym skutkiem podatności było ryzyko naruszenia prywatności użytkownika. Jeśli ofiara sądziła, że połączenie zostało zakończone, mogła kontynuować rozmowę w pobliżu urządzenia lub pozostawić aktywną kamerę, nie mając świadomości, że strumień nadal może być transmitowany do rozmówcy.

W środowisku konsumenckim oznacza to możliwość podsłuchu lub nieautoryzowanego podglądu po zakończeniu rozmowy. W środowisku korporacyjnym ryzyko jest jeszcze wyższe, ponieważ aktywne urządzenie mobilne może znajdować się podczas spotkań wewnętrznych, rozmów handlowych, konsultacji prawnych lub omówień incydentów bezpieczeństwa. Nawet krótkotrwałe utrzymanie aktywnej sesji może prowadzić do wycieku danych wrażliwych.

Istotne jest również to, że exploit nie wymagał klasycznego przełamania zabezpieczeń urządzenia ofiary. Wystarczało wykorzystanie logiki protokołu połączenia przez złośliwego rozmówcę. Taki model zagrożenia jest trudniejszy do wykrycia, ponieważ nie musi generować typowych artefaktów kojarzonych z malware czy eksploatacją pamięci.

Rekomendacje

Podstawowym działaniem ochronnym jest natychmiastowa aktualizacja aplikacji Signal do wersji zawierającej poprawioną bibliotekę RingRTC. W organizacjach zarządzających flotą urządzeń mobilnych aktualizacja powinna zostać wymuszona centralnie, o ile pozwala na to stosowane rozwiązanie MDM lub EMM.

Z operacyjnego punktu widzenia warto wdrożyć kilka dodatkowych praktyk:

  • traktować aktualizacje komunikatorów jako element programu zarządzania podatnościami, a nie jedynie rutynową konserwację aplikacji użytkowych,
  • monitorować komunikaty bezpieczeństwa dostawców aplikacji komunikacyjnych używanych w organizacji,
  • szkolić użytkowników, aby po zakończeniu połączenia zwracali uwagę na wskaźniki aktywności mikrofonu i kamery w systemie operacyjnym,
  • ograniczać użycie komunikatorów konsumenckich w kontekście rozmów o wysokiej wrażliwości, jeśli organizacja dysponuje platformami z dodatkowymi kontrolami bezpieczeństwa i nadzoru,
  • uwzględniać w modelowaniu zagrożeń scenariusze nadużycia funkcji połączeń, a nie tylko przejęcia kont czy phishing.

Dla zespołów deweloperskich i audytorów bezpieczeństwa przypadek ten stanowi przypomnienie, że mechanizmy zakończenia sesji powinny być projektowane jako operacje o najwyższym priorytecie. Funkcje odpowiedzialne za dezaktywację mikrofonu, kamery oraz transmisji powinny działać w sposób odporny na przeciążenie kolejki zdarzeń, błędy synchronizacji i nietypowe zachowanie zdalnego peera.

Podsumowanie

Luka CVE-2026-113380 w bibliotece RingRTC pokazała, że krytyczne zagrożenia dla prywatności mogą wynikać nie z osłabienia szyfrowania, lecz z błędów logiki sterowania połączeniem. W tym przypadku złośliwy rozmówca mógł uniemożliwić skuteczne rozłączenie sesji i utrzymać aktywne strumienie audio lub wideo. Dla użytkowników oznacza to konieczność szybkiego aktualizowania aplikacji, a dla producentów oprogramowania jasny wniosek: funkcje kończące sesję muszą być projektowane jako bezwarunkowe i odporne na manipulację stanem.

Źródła

  1. SecurityWeek — https://www.securityweek.com/signal-vulnerability-lets-malicious-callers-block-hang-ups/
  2. RingRTC repository — https://github.com/signalapp/ringrtc
  3. RingRTC 2.72.0 release — https://github.com/signalapp/ringrtc/releases/tag/v2.72.0
  4. NVD: CVE-2026-113380 — https://nvd.nist.gov/vuln/detail/CVE-2026-113380