CVE-2026-45537: OpenSIPS: Global Buffer Overflow in construct_uri
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.
Security readout for executives and security teams
Plain-English summary
A remote, unauthenticated attacker may corrupt OpenSIPS routing data when a vulnerable routing script builds a URI from an attacker-controlled, oversized username. This can alter how later SIP messages are handled and disrupt service. OpenSIPS 3.6.6 and 4.0.0-rc1 contain fixes.
Executive priority
Treat this as an urgent remediation for exposed SIP infrastructure. Prioritize systems accepting untrusted traffic and using construct_uri() with user-controlled input. Coordinate a tested upgrade promptly because successful abuse can alter routing behavior or availability without requiring credentials.
Technical view
construct_uri() concatenates URI components into a shared 1024-byte global BSS buffer without bounds checking. Excess input can overwrite adjacent globals, including disable_503_translation, and shared contact_builder() data. The supplied CVSS 3.1 score is 9.1, reflecting network reachability, low complexity, no authentication, and high integrity and availability impact.
Likely exposure
Exposure requires OpenSIPS versions 3.4.0 through 3.6.5, or 4.0.0-beta before 4.0.0-rc1, plus a routing script calling construct_uri() with an attacker-controlled username. Internet-facing or otherwise untrusted SIP access increases practical exposure. The bundle provides no affected CPE identifiers.
Exploitation context
The overflow can silently corrupt global state and deterministically change the SIP 503 translation flag, affecting subsequent routing. The source bundle marks KEV false and provides no cited evidence of active exploitation. This does not establish that exploitation has never occurred.
Researcher notes
The documented impact is global-data corruption, not confidentiality loss. The overflow affects a shared static buffer and can reach disable_503_translation and contact_builder() state. The bundle demonstrates deterministic state manipulation but does not establish arbitrary code execution. Sanitizer-free builds may silently continue after corruption.
Mitigation direction
Upgrade OpenSIPS 3.4.0–3.6.5 installations to version 3.6.6 or later.
Upgrade affected 4.0.0 beta installations to 4.0.0-rc1 or later.
If upgrading is delayed, consult the OpenSIPS advisory for supported interim guidance.
Validation and detection
Inventory deployed OpenSIPS versions and identify installations within the stated affected ranges.
Review routing scripts for construct_uri() calls receiving usernames from untrusted SIP messages.
After remediation, confirm every running instance reports a fixed or later version.
Review monitoring for unusually long SIP usernames and unexplained changes in 503 routing behavior.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-120: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
1ADP providers
4Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-120 · source CWE mapping
Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')
Buffer Copy without Checking Size of Input ('Classic Buffer Overflow') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.