CVE-2026-116781
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
W FreeSWITCH przed wersją 1.11.2 funkcja ws_read_frame() odmaskowywała ładunek WebSocket, iterując po wsh->datalen obejmującym nagłówki ramki, co mogło powodować zapis poza buforem odbiorczym 64 KiB. Luka jest osiągalna przed uwierzytelnieniem, gdy mod_xml_rpc i jego opcjonalny endpoint WebSocket są włączone.
Ocena ryzyka
Możliwe jest uszkodzenie pamięci w obrębie uchwytu połączenia, co może prowadzić do niestabilności usługi; w konfiguracji domyślnej funkcje są wyłączone.
Rekomendacja
Zaktualizuj FreeSWITCH do wersji 1.11.2 lub nowszej oraz pozostaw mod_xml_rpc i endpoint WebSocket wyłączone, jeśli nie są wymagane.
Inne podatności w FreeSWITCH
Zobacz wszystkie- CVE-2026-116790Krytyczne
FreeSWITCH przed wersją 1.11.2 akceptuje wszystkie testy łączności ICE bez kryptograficznej weryfikacji atrybutu STUN MESSAGE-INTEGRITY. Zdalny atakujący może sfałszować test łączności ICE bez poświadczeń SDP, nominować własny adres i przekierować ruch RTP/DTLS, co umożliwia podsłuchiwanie i wstrzykiwanie mediów na niezaszyfrowanych połączeniach.
- CVE-2026-116785Krytyczne
FreeSWITCH przed wersją 1.11.2 ma błąd w funkcji ws_read_frame(), która dekoduje 64-bitową długość ładunku WebSocket z 32-bitową zamianą bajtów i zawęża wynik do typu signed. Wartość, której dolne słowo staje się ujemne, omija sprawdzenie rozmiaru i jest reinterpretowana jako ogromna liczba unsigned, powodując nadpisanie pamięci poza buforem odbioru 64 KiB. Może to uszkodzić wskaźniki połączeń i spowodować awarię FreeSWITCH, kończąc wszystkie sesje.
- CVE-2026-116779KrytyczneAktywnie exploitowane
FreeSWITCH przed wersją 1.11.3 w funkcji sofia_presence_handle_sip_i_message() dzieli użytkownika To przychodzącego komunikatu SIP MESSAGE na znaku plus i traktuje lewą stronę jako selektor protokołu czatu. Wybór api chat proto prowadzi do switch_api_execute(), pozwalając peerowi, którego MESSAGE został zaakceptowany, na uruchamianie poleceń API FreeSWITCH, w tym poleceń systemowych, z uprawnieniami demona. Podatność jest aktywnie wykorzystywana w środowisku.
- CVE-2026-49841Krytyczne
FreeSWITCH przed wersją 1.11.1 zawiera podatność przepełnienia sterty w module mod_verto. Atakujący może wysłać żądanie HTTP POST z dużym ciałem, co prowadzi do przepełnienia bufora przed uwierzytelnieniem.
- CVE-2026-49840Krytyczne
W FreeSWITCH przed wersją 1.11.1 funkcja esl_recv_event() nieprawidłowo obsługuje Content-Length, co pozwala złośliwemu peerowi ESL na wysłanie ramki z ujemną wartością, powodując uszkodzenie sterty lub awarię procesu przed uwierzytelnieniem.
- CVE-2026-116789Wysokie
W FreeSWITCH przed wersją 1.11.2 funkcja dtls_state_setup() porównuje certyfikat peera z odciskiem SDP a=fingerprint tylko gdy FreeSWITCH jest klientem DTLS, a nie gdy pełni rolę serwera. Nieuwierzytelniony peer może ukończyć handshake DTLS-SRTP z niepowiązanym certyfikatem, uzyskać klucze SRTP i wstrzykiwać media.
- CVE-2026-116788Wysokie
W FreeSWITCH przed wersją 1.11.2 w switch_xml_decode() występuje niedomiar liczby całkowitej powodujący zbyt małą alokację sterty, gdy dokument XML deklaruje encję z pustą wartością zastępczą. Kolejne kopiowanie przepełnia bufor.
- CVE-2026-116787Wysokie
W FreeSWITCH przed wersją 1.11.2 mod_event_socket używa nieuwierzytelnionej wartości Content-Length bezpośrednio jako rozmiaru alokacji treści wiadomości Event Socket. Wartości ujemne lub bardzo duże mogą przepełnić obliczenia terminatora lub wymusić błąd alokacji kończący proces.
- CVE-2026-116786Wysokie
W FreeSWITCH przed wersją 1.11.2 funkcja sofia_handle_sip_i_refer() umieszcza surowe parametry i nagłówki URI Refer-To w bloku zmiennych kanału przekazywanym do switch_ivr_originate(). Przecinek w wartości kontrolowanej przez atakującego jest traktowany jako separator zmiennych, co pozwala uwierzytelnionemu dzwoniącemu wstrzyknąć dowolne zmienne do nowo tworzonego legu.
- CVE-2026-116784Wysokie
W FreeSWITCH przed wersją 1.11.2 funkcja process_rtcp_report() używała zadeklarowanej w pakiecie RTPFB NACK długości nagłówka RTCP jako granicy pętli przetwarzania wpisów zwrotnych, zamiast zweryfikowanej wcześniej długości datagramu. Krótki pakiet z zawyżoną deklaracją mógł powodować odczyty daleko poza buforem odbiorczym o stałym rozmiarze 16 KiB. Każdy peer mogący wysłać RTCP do aktywnej rozmowy wideo może wykorzystać tę podatność.
Oryginalny opis (angielski, źródło NVD)
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a software implementation that runs on any commodity hardware. Prior to 1.11.2, ws_read_frame() unmasked a WebSocket payload by iterating wsh->datalen, which included frame headers, while indexing from the payload pointer. A masked frame filling the 64 KiB receive buffer could therefore XOR up to 14 bytes beyond the buffer, and the exact-capacity case also wrote a terminating NUL one byte out of bounds. The flaw is reachable before authentication when mod_xml_rpc and its opt-in WebSocket endpoint are enabled, while both features are disabled in the stock configuration. The writes remain within the same connection handle's adjacent outbound buffer, so neither a process crash nor cross-session disclosure has been demonstrated. This issue is fixed in version 1.11.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

