CVE-2026-45538
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 46 - wyżej niż 46% wszystkich znanych CVE
Streszczenie
OpenSIPS w wersji 4.0.0 i wcześniejszych zawiera przepełnienie bufora stosu w funkcji sip_to_json(), gdy nazwa nagłówka SIP przekracza 255 bajtów. Atakujący może wysłać pojedynczy pakiet UDP na port 5060, aby spowodować awarię procesu lub potencjalnie wykonać zdalny kod.
Ocena ryzyka
Ryzyko awarii serwera SIP lub zdalnego wykonania kodu w środowiskach, gdzie skrypt routingu wywołuje sip_to_json().
Rekomendacja
Sprawdź, czy dostępna jest poprawka dla OpenSIPS. Jeśli nie, unikaj wywoływania sip_to_json() na niezaufanych danych lub ogranicz długość nazw nagłówków.
Inne podatności w OpenSIPS
Zobacz wszystkie- CVE-2026-45537Krytyczne
OpenSIPS przed wersjami 3.6.6 i 4.0.0-rc1 zawiera przepełnienie bufora w funkcji construct_uri(), która łączy komponenty URI do stałego bufora 1024-bajtowego bez sprawdzania granic. Atakujący może kontrolować nazwę użytkownika, aby przepełnić bufor i nadpisać sąsiednie dane globalne, w tym flagę disable_503_translation, zmieniając zachowanie routingu.
- CVE-2026-45100Krytyczne
OpenSIPS w wersjach od 3.4.0-beta do 3.6.5 oraz 4.0.0-beta zawiera przepełnienie bufora w transformacji {s.b64encode}. Sprawdzanie rozmiaru nie uwzględnia ekspansji base64, co pozwala na przepełnienie bufora o maksymalnie 21 844 bajty, nadpisując sąsiednie bufory transformacji.
- CVE-2026-46334Wysokie
OpenSIPS przed wersjami 3.6.6 i 4.0.0-rc1 zawiera podatność na odmowę usługi w logice parsowania linii pasma SDP. Nieprawidłowo sformatowana linia pasma SDP może uszkodzić metadane, co prowadzi do awarii procesu roboczego OpenSIPS.
- CVE-2026-45809Wysokie
OpenSIPS przed wersjami 3.6.6 i 4.0.0-rc1 zawiera podatność na odmowę usługi w funkcji generowania watcherinfo. Przesłanie żądania SUBSCRIBE z długim URI From może spowodować przepełnienie bufora na stosie i awarię procesu.
- CVE-2026-45705Średnie
OpenSIPS to implementacja serwera Session Initiation Protocol (SIP). W wersjach przed 3.6.6 i 4.0.0-rc1 funkcja find_line_delimiter() w parserze treści multipart wykonuje odczyt poza zakresem przez strncmp() podczas wyszukiwania ograniczników granic MIME. Po znalezieniu wzorca -- w pobliżu końca treści, funkcja porównuje delimiter.len bajtów (zwykle 20-70) zaczynając od pozycji na lub za logicznym końcem bufora treści, czytając poza granicę treści. Błąd jest wyzwalany, gdy wiadomość SIP ma Content-Type: multipart/mixed z parametrem boundary, a jej treść zawiera -- w odległości dwóch do trzech bajtów od końca treści bez faktycznego ogranicznika granicy. Problem został naprawiony w wersjach 3.6.6 i 4.0.0-rc1.
- CVE-2026-45103Wysokie
W OpenSIPS przed wersjami 3.6.6 i 4.0.0-rc1 warstwa ramowania TCP analizuje nagłówek Content-Length przy użyciu arytmetyki na typie unsigned int bez sprawdzania przepełnienia. Atakujący może wysłać wartość Content-Length, która powoduje przepełnienie (np. 4294967296), co prowadzi do błędnego podziału strumienia TCP i przemycenia wiadomości SIP. Ponieważ parsowanie odbywa się przed uwierzytelnieniem, nieuwierzytelniony atakujący może przemycać dowolne wiadomości SIP przez dowolny transport TCP.
- CVE-2026-45084Wysokie
W OpenSIPS w wersjach od 3.4.0 do 3.6.5 występuje podatność na odmowę usługi w module obecności. Funkcja handle_publish() przetwarzając żądanie SIP PUBLISH z nagłówkiem Event: presence i ciałem wiadomości, gdy opcja enable_sphere_check=1, wywołuje makro get_content_type() bez wcześniejszego wywołania parse_content_type_hdr(), co prowadzi do dereferencji niezainicjalizowanego lub NULL-owego stanu parsowania Content-Type i awarii. Zdalny atakujący może spowodować odmowę usługi pojedynczym żądaniem PUBLISH przez UDP lub TCP.
- CVE-2026-25554Średnie
W module auth_jwt programu OpenSIPS przed wersją 3.6.4 występuje podatność na iniekcję SQL w funkcji jwt_db_authorize(). Atakujący może wysłać spreparowany token JWT ze złośliwym polem tag, które bez odpowiedniego oczyszczenia trafia do zapytania SQL, co pozwala na ominięcie uwierzytelniania JWT i podszycie się pod dowolnego użytkownika.
Oryginalny opis (angielski, źródło NVD)
OpenSIPS is a Session Initiation Protocol (SIP) server implementation. In versions 4.0.0 and prior, processing a SIP message with a header name longer than 255 bytes causes a stack buffer overflow when sip_to_json() is called in the routing script. Function sip_to_json() (modules/sipmsgops/sipmsgops.c) copies SIP header names into a fixed 255-byte stack buffer without bounds checking, performing a memcpy of the full header-name length even though the SIP parser imposes no such limit (a header name can be roughly 65000 bytes). As a result, when a routing script calls sip_to_json(), a SIP message with a header name longer than 255 bytes triggers a stack buffer overflow in which both the length and content of the overwrite are attacker-controlled, corrupting the saved frame pointer and return address. A single unauthenticated UDP packet to the SIP port (5060) can crash the process or, on builds without stack protections, hijack the return address to achieve remote code execution. This affects deployments whose routing script invokes sip_to_json(). This issue was not fixed at the time of publication.

