Denial of Service via Unvalidated WebSocket Frame Length in sipgo
An unauthenticated denial of service vulnerability in the sipgo WebSocket transport allows attackers to crash the service by sending a crafted frame with an oversized payload length field.
CVE search metadata
CVE search record: CVE-2026-77322. Severity: high. CVSS: 7.5. KEV: no. Product: sipgo (<= 1.4.2). Brief: Denial of Service via Unvalidated WebSocket Frame Length in sipgo. Brief link: https://feed.craftedsignal.io/briefs/2026-09-sipgo-dos/
The Go-based SIP library sipgo (versions <= 1.4.2) contains a critical vulnerability in its WebSocket transport implementation, tracked as CVE-2026-77322. The WSConnection.Read function allocates a memory buffer based on the length field provided within a client-controlled WebSocket frame header without performing bounds validation.
When NextFrame() is called, it initializes a wsutil.NewReader without enforcing a MaxFrameSize limit. An attacker can initiate a standard WebSocket handshake and subsequently transmit a single masked text frame with a payload length declared as an extremely high value (e.g., 2^63-1). This triggers a runtime panic due to an attempt to allocate an out-of-range slice, leading to an immediate crash of the entire server process. This vulnerability is particularly dangerous as it is unauthenticated, trivial to exploit, and requires only a single network packet to disrupt service availability.
Attack Chain
- Attacker establishes a WebSocket connection to the target server utilizing the
sipgolibrary. - Attacker performs the standard WebSocket handshake process to establish the transport session.
- Attacker constructs a malicious masked WebSocket text frame.
- Attacker sets the frame header length marker to
127to indicate an 8-byte length field. - Attacker sets the length value in the frame header to
0x7FFFFFFFFFFFFFFF(2^63-1). - Server process calls
WSConnection.Readand proceeds to allocate a slice based on the malicious header length. - Runtime environment throws a
makeslice: len out of rangepanic, resulting in an unhandled crash of the server process.
Impact
Successful exploitation results in an immediate, unauthenticated denial of service by crashing the host application. Services utilizing sipgo for SIP over WebSocket/WSS are susceptible to process termination, which can cause significant service disruption for telephony and communication infrastructure.
Recommendation
Prioritized, concrete actions:
- Update the
sipgolibrary to a version containing the fix for CVE-2026-77322, which enforcesMaxFrameSizewithinwsutil.NewReader. - Implement upstream network filtering or WAF policies to drop WebSocket traffic containing header-declared payload lengths exceeding the maximum expected message size for your specific SIP application.
- For detection, monitor server logs for recurring application panics or process restarts shortly following a WebSocket handshake, which may indicate active exploitation attempts.
Immediate actions
Upgrade sipgo to 1.4.3 or later
Mitigations
Review server logs for Go runtime panics related to 'makeslice: len out of range' following WebSocket connection establishment.
CVE-2026-77322