CVE-2025-69217
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
W coturn w wersjach 4.6.2r5 do 4.7.0-r4 po refaktoryzacji występuje słaby generator liczb losowych dla nonce i randomizacji portów. Losowe liczby nie są generowane przez RAND_bytes z OpenSSL, lecz przez random() z libc, co po pobraniu około 50 kolejnych nonce pozwala na pełną rekonstrukcję stanu generatora i przewidzenie kolejnych nonce oraz portów.
Ocena ryzyka
Atakujący może przewidzieć nonce i porty, co umożliwia uwierzytelnianie przy podszywaniu się pod adresy IP oraz przewidywanie przydziału portów przekaźnika, co może prowadzić do nieautoryzowanego dostępu i zakłóceń.
Rekomendacja
Zaktualizuj coturn do wersji zawierającej poprawkę (commit 11fc465f4bba70bb0ad8aae17d6c4a63a29917d9) lub nowszej, aby przywrócić bezpieczne generowanie liczb losowych.
Inne podatności w coturn
Zobacz wszystkie- CVE-2026-104074Średnie
Coturn 4.10.0 zawiera lukę ujawnienia niezainicjalizowanej pamięci, która pozwala zdalnym nieuwierzytelnionym atakującym na wyciek zawartości stosu poprzez wysłanie żądania TURN Allocate bez poświadczeń. Funkcja stun_init_error_response_common_str() nie zeruje bufora avalue przed obliczeniem jego długości i skopiowaniem wyciekłych bajtów stosu do frazy ERROR-CODE.
- CVE-2026-68555Średnie
Coturn w wersji 4.15.0 ma podatność, która pozwala uwierzytelnionemu użytkownikowi TURN na wielokrotne wznawianie alokacji z nowych 5-krotek UDP bez zakończenia przekazania, gdy włączona jest opcja --mobility. Prowadzi to do nieograniczonej liczby sesji po stronie serwera i wyczerpania pamięci procesu, nawet przy skonfigurowanym --user-quota=1.
- CVE-2026-68554Niskie
Coturn to darmowa implementacja serwera TURN i STUN. Przed wersją 4.15.0 atakujący w ścieżce sieciowej może dodać atrybuty po MESSAGE-INTEGRITY do uwierzytelnionego żądania STUN przez zwykły UDP lub TCP, dostosować długość nagłówka STUN i przeliczyć niekluczowany FINGERPRINT, podczas gdy oryginalny HMAC pozostaje ważny, ponieważ obejmuje tylko prefiks wiadomości. Parsowanie po stronie serwera w src/server/ns_turn_server.c kontynuuje po MESSAGE-INTEGRITY przez handle_turn_allocate(), handle_turn_create_permission(), handle_turn_refresh() i handle_turn_command(), co pozwala na nadpisanie czasu życia alokacji, wstrzyknięcie uprawnienia lub ominięcie kontroli pochodzenia przez atrybuty LIFETIME, XOR-PEER-ADDRESS lub ORIGIN. Wdrożenia TLS i DTLS zapobiegają tej modyfikacji w tranzycie. Problem naprawiono w wersji 4.15.0.
- CVE-2026-68553Wysokie
W Coturn przed wersją 4.13.0 uwierzytelniony użytkownik TURN może umieścić specyfikatory formatu printf w atrybutach STUN USERNAME lub REALM, które przechodzą walidację is_secure_string() i są osadzane w kluczach Redis. Funkcja send_message_to_redis() przekazuje kontrolowany klucz jako argument formatu do redisAsyncCommand(), co może prowadzić do odczytu poza va_list. Eksploitacja może spowodować awarię procesu coturn lub ujawnienie pamięci stosu do Redis.
- CVE-2026-68552Średnie
Coturn przed wersją 4.15.0 ma podatność, w której nieuwierzytelniony klient może wysłać wiadomość STUN przez TCP/TLS z polem długości treści od 65520 do 65532, powodując zawinięcie zmiennej len w stun_get_message_len_str(). Prowadzi to do desynchronizacji parsera strumienia i zerwania połączenia atakującego klienta, ale nie wpływa na innych klientów ani proces serwera.
- CVE-2026-73216Średnie
Coturn to implementacja serwerów TURN i STUN. Przed wersją 4.17.0 funkcja shutdown_client_connection() przedwcześnie wywołuje dec_quota() i zwalnia rozliczanie przepustowości podczas pierwszego etapu zamykania alokacji z włączoną mobilnością, zachowując alokację, gniazdo przekaźnikowe, sesję i bilet mobilności. Umożliwia to uwierzytelnionemu klientowi ominięcie limitów --user-quota i --total-quota oraz wyczerpanie portów przekaźnikowych. Problem naprawiono w wersji 4.17.0.
- CVE-2026-73215Wysokie
Coturn przed wersją 4.17.0 ma podatność w funkcji turnports_allocate_even(), która oznacza nieużywany port nieparzysty jako TPS_TAKEN_ODD dla żądania Allocate z parzystym portem i bitem rezerwacji R=0, mimo że żaden gniazdo RTCP go nie zwolni. Uwierzytelniony klient może trwale wyczerpać pulę portów relay, powodując błędy alokacji z kodem STUN 508.
- CVE-2026-73214Wysokie
Coturn przed wersją 4.16.0 ma podatność w funkcjach dtls_server_input_handler() i create_new_connected_udp_socket(), które przechowują stan OpenSSL dtls1_reassemble_fragment() dla 35-bajtowego pofragmentowanego ClientHello deklarującego 650 000-bajtowe uzgadnianie przed walidacją ciasteczka. Nieuwierzytelniony zdalny nadawca może wyczerpać pamięć bez poświadczeń TURN, ukończonego uzgadniania, ważnego ciasteczka lub spoofingu źródła.
- CVE-2026-73213Średnie
Coturn to implementacja serwerów TURN i STUN. Przed wersją 4.16.0 funkcja addr_less_eq() w src/client/ns_turn_ioaddr.c używa porównania składowych dla natywnych zakresów IPv6 min-max w ioa_addr_in_range(), co pozwala uwierzytelnionemu klientowi TURN na przekazywanie do peera IPv6, który numerycznie znajduje się w skonfigurowanym zakresie denied-peer-ip (nie wyrównanym do prefiksu), ale jest klasyfikowany jako poza nim. Problem naprawiono w wersji 4.16.0.
- CVE-2026-73212Średnie
Coturn przed wersją 4.13.1 zawiera podatność w funkcji good_peer_addr(), która nie kanonizuje adresów IPv4-kompatybilnych, 6to4 i NAT64 (64:ff9b::/96). Umożliwia to uwierzytelnionemu klientowi TCP CONNECT (RFC 6062) ominięcie zakresu adresów IPv4 z listy zabronionych (denied-peer-ip), gdy host Coturn ma odpowiednią trasę translacji.
Oryginalny opis (angielski, źródło NVD)
coturn is a free open source implementation of TURN and STUN Server. Versions 4.6.2r5 through 4.7.0-r4 have a bad random number generator for nonces and port randomization after refactoring. Additionally, random numbers aren't generated with openssl's RAND_bytes but libc's random() (if it's not running on Windows). When fetching about 50 sequential nonces (i.e., through sending 50 unauthenticated allocations requests) it is possible to completely reconstruct the current state of the random number generator, thereby predicting the next nonce. This allows authentication while spoofing IPs. An attacker can send authenticated messages without ever receiving the responses, including the nonce (requires knowledge of the credentials, which is e.g., often the case in IoT settings). Since the port randomization is deterministic given the pseudorandom seed, an attacker can exactly reconstruct the ports and, hence predict the randomization of the ports. If an attacker allocates a relay port, they know the current port, and they are able to predict the next relay port (at least if it is not used before). Commit 11fc465f4bba70bb0ad8aae17d6c4a63a29917d9 contains a fix.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

