CVE-2026-45537
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko naruszenia integralności serwera SIP, zmiany logiki routingu i potencjalnego zakłócenia działania usług VoIP.
Rekomendacja
Zaktualizuj OpenSIPS do wersji 3.6.6 lub 4.0.0-rc1. Jeśli nie jest to możliwe, ogranicz dostęp do serwera i monitoruj nietypowe żądania SIP.
Inne podatności w OpenSIPS
Zobacz wszystkie- 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-45538Krytyczne
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.
- 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 prior to 3.6.6 and 4.0.0-rc1, the construct_uri() function concatenates multiple URI components (protocol, username, domain, port, params) into a fixed 1024-byte global BSS buffer without any bounds checking. When a routing script calls construct_uri() with an attacker-controlled username, a combined component length exceeding 1024 bytes overflows the buffer, corrupting adjacent global data with attacker-controlled content. The overflow reaches disable_503_translation, a global flag controlling SIP 503 response handling, allowing an attacker to deterministically set the flag via the URI username and alter the server's routing behavior for subsequent messages. Because the same buffer is shared with contact_builder(), the overflow also corrupts that function's data, and without a memory sanitizer the adjacent globals are silently overwritten on every request containing a long username. This issue has been fixed in versions 3.6.6 and 4.0.0-rc1.

