CVE-2026-116569: FreeSWITCH: Pre-authentication out-of-bounds write in MSRP message body parsing
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a software implementation that runs on any commodity hardware. Prior to 1.11.2, msrpparsebuffer() subtracted delimiter framing from a peer-controlled short segment whose MSRP byte range ended in without first proving the segment was long enough. The unsigned result wrapped near SIZEMAX and reached switchmsrpmsgsetpayload() as both an allocation size and memcpy length, while related pointer arithmetic could read before the receive buffer. The listener is disabled by default in msrp.conf.xml, but any deployment enabling an MSRP TCP or TLS port parses this framing before authentication. An unauthenticated network peer can corrupt memory and crash FreeSWITCH, dropping all active calls, although remote code execution has not been demonstrated. This issue is fixed in version 1.11.2.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
FreeSWITCHto a version that resolves this vulnerability.Fixed in 1.11.2
Event History
Frequently Asked Questions
Which deployments are exposed?
Deployments that enable an MSRP TCP or TLS port in msrp.conf.xml are exposed. The MSRP listener is disabled by default, so installations that have not enabled it are not affected through this listener.
What does an attacker need to exploit this issue?
An attacker only needs network access to an enabled MSRP TCP or TLS listener. The malformed MSRP framing is parsed before authentication, so no account or prior authentication is required.
What is the likely operational impact?
A remote peer can corrupt memory and crash FreeSWITCH, which can drop all active calls. Remote code execution has not been demonstrated.
What can be done before upgrading?
If an immediate upgrade is not possible, disable the MSRP listener or restrict network access to enabled MSRP TCP/TLS ports to trusted peers. The issue is fixed in FreeSWITCH 1.11.2.