---
id: "CVE-2026-116569"
kind: "vulnerability"
aliases: ["CVE-2026-116569"]
title: "FreeSWITCH: crafted MSRP message corrupts memory and crashes telephony switch"
severity: "high"
cvss: 7.5
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["freeswitch", "runtime", "telephony", "voip"]
not_affected_if: ["default-config", "msrp-disabled"]
published_at: "2026-11-05T20:17:44+00:00"
first_seen_at: "2026-11-05T20:40:44+00:00"
updated_at: "2026-11-05T20:43:06+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116569", "first_seen_at": "2026-11-05T20:40:44+00:00"}]
exploit_sources: []
---

# FreeSWITCH: crafted MSRP message corrupts memory and crashes telephony switch

A short malformed MSRP message makes FreeSWITCH compute a wrapped length and read or write memory outside its buffers before authentication. An unauthenticated network peer can crash the switch and drop all active calls, though code execution has not been demonstrated.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the FreeSWITCH version with `freeswitch -version` and compare it with the fixed release below.
- Check whether the MSRP listener is enabled in `msrp.conf.xml` (disabled by default); look for an MSRP TCP or TLS port being bound.

## Fix

- FreeSWITCH: upgrade to `1.11.2`.

## Timeline

- 2026-11-05T20:40:44+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116569

## Documents

- [advisory] Vendor advisory: github.com https://github.com/signalwire/freeswitch/security/advisories/GHSA-m8xv-crhj-3rf7
- [fix] Patch: github.com https://github.com/signalwire/freeswitch/commit/349f55ff546ab365f026eb254965af98232f81a9
- [fix] Release notes: github.com https://github.com/signalwire/freeswitch/releases/tag/v1.11.2

## From the sources

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, msrp_parse_buffer() 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 SIZE_MAX and reached switch_msrp_msg_set_payload() 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.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
