Vulnerability details

CVE-2026-45537

opensips OpenSIPS

OpenSIPS: Global Buffer Overflow in construct_uri

CVSS 3.1
9.1Critical

Official description

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.

CVSS scores

ScoreVersionSourceVector
9.1Critical 3.1 CVEProject cvelistV5 (CNA) (GitHub_M) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

Affected products

VendorProductVersionsSource
opensips OpenSIPS >= 3.4.0, < 3.6.6 CVEProject cvelistV5 (CNA)
opensips OpenSIPS >= 4.0.0-beta, < 4.0.0-rc1 CVEProject cvelistV5 (CNA)

References and advisories

3
Kolun on Telegram @kolunsec Exploited CVEs, key news and a daily digest Alerts for this product's next CVEsFollow the product to get new vulnerabilities on Telegram.

Details

Published
2026-08-05
Last updated
2026-08-05
State
Published
Assigner (CNA)
GitHub_M

Exploit prediction (EPSS)

0.62%
Probability of exploitation in 30 days
50.1%
Percentile (among all CVEs)

SSVC assessment (CISA)

Automatable
Yes
Exploitation
Proof of concept
Technical impact
Total

Weaknesses (CWE)

  • CWE-120
    Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')