Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-49475

CVE-2026-49475: FreeSWITCH Buffer Overflow Vulnerability

CVE-2026-49475 is a buffer overflow flaw in FreeSWITCH caused by improper STUN packet parsing that triggers out-of-bounds memory access. This article covers the technical details, affected versions, and mitigation strategies.

Published:

CVE-2026-49475 Overview

CVE-2026-49475 is an out-of-bounds memory access vulnerability in FreeSWITCH, the open-source Software Defined Telecom Stack maintained by SignalWire. The flaw resides in the Session Traversal Utilities for NAT (STUN) packet parser used by the per-leg media buffer. When the parser processes a STUN attribute whose declared length is shorter than the structure the parser casts it to, it reads and writes past the attribute boundary. A remote, unauthenticated attacker can send a crafted STUN packet over the network to trigger the condition. The issue affects all FreeSWITCH builds prior to version 1.11.0 and is tracked under [CWE-20] Improper Input Validation.

Critical Impact

Remote unauthenticated attackers can trigger out-of-bounds memory access in the FreeSWITCH media stack, leading to denial of service on telephony infrastructure.

Affected Products

  • FreeSWITCH versions prior to 1.11.0
  • SignalWire FreeSWITCH builds using the STUN parser on media legs
  • Any deployment exposing FreeSWITCH media endpoints to untrusted networks

Discovery Timeline

  • 2026-06-09 - CVE-2026-49475 published to NVD
  • 2026-06-10 - Last updated in NVD database

Technical Details for CVE-2026-49475

Vulnerability Analysis

FreeSWITCH processes STUN packets as part of its real-time media negotiation, particularly for Interactive Connectivity Establishment (ICE) and NAT traversal on RTP legs. The parser walks each STUN attribute in the inbound packet and casts the raw bytes to a fixed structure based on the attribute type. The parser trusts the attribute type without verifying that the declared length matches or exceeds the size of the target structure.

When an attacker supplies a STUN attribute whose length field is smaller than sizeof(target_struct), the cast causes the parser to dereference memory beyond the attribute boundary. The read may leak adjacent buffer contents, and the subsequent write corrupts memory inside the per-leg media buffer.

Because STUN packets are accepted on media ports before authentication, the attack surface includes any FreeSWITCH instance reachable from untrusted networks. The CVSS vector indicates availability impact only, consistent with a parser crash or media buffer corruption that terminates the FreeSWITCH process or session.

Root Cause

The root cause is missing length validation before a structure cast. The parser should reject any attribute whose declared length is smaller than the structure size for the given attribute type, but the pre-1.11.0 code path performs the cast unconditionally.

Attack Vector

The attacker sends a single malformed STUN binding or attribute packet to a FreeSWITCH media port. No authentication, user interaction, or prior call setup is required. Repeated packets can be used to keep the service in a degraded or crashed state.

No verified proof-of-concept code is publicly available. Refer to the GitHub Security Advisory GHSA-9j6h-hc95-q926 for technical details from the maintainers.

Detection Methods for CVE-2026-49475

Indicators of Compromise

  • Unexpected FreeSWITCH process crashes or restarts coinciding with inbound UDP traffic on RTP and STUN ports
  • Malformed STUN packets where the attribute length header is smaller than the attribute type's expected structure size
  • Spikes in inbound STUN binding requests from unfamiliar source IP addresses

Detection Strategies

  • Inspect FreeSWITCH logs for parser errors, segmentation faults, or abrupt session terminations on media legs
  • Deploy network IDS signatures that flag STUN packets with attribute length values below the minimum size for the declared attribute type
  • Correlate media port traffic anomalies with call quality degradation or session teardown events

Monitoring Recommendations

  • Monitor FreeSWITCH service uptime and restart counts as a baseline availability metric
  • Capture packet samples on media ports for forensic review when crash events occur
  • Track inbound STUN volume per source IP to identify scanning or flooding behavior

How to Mitigate CVE-2026-49475

Immediate Actions Required

  • Upgrade FreeSWITCH to version 1.11.0 or later, which contains the parser fix
  • Restrict media and STUN port exposure to trusted networks and known SBC peers using firewall ACLs
  • Audit current FreeSWITCH deployments for version inventory and patch status

Patch Information

SignalWire patched the issue in FreeSWITCH 1.11.0. The release adds bounds validation in the STUN attribute parser before any cast to an attribute-specific structure. Download the patched release from the FreeSWITCH GitHub Release v1.11.0 and review the maintainer's GitHub Security Advisory GHSA-9j6h-hc95-q926 for upgrade guidance.

Workarounds

  • Place FreeSWITCH behind a Session Border Controller (SBC) that validates and sanitizes STUN traffic
  • Block inbound STUN traffic from untrusted source ranges at the network edge until the upgrade is applied
  • Rate-limit UDP traffic to FreeSWITCH media ports to reduce the impact of repeated malformed packets
bash
# Example iptables rules restricting STUN/media traffic to known peers
iptables -A INPUT -p udp -m multiport --dports 3478,5060,16384:32768 -s <trusted_sbc_ip> -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 3478,5060,16384:32768 -j DROP

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.