---
schema: 1
kind: vulnerability
title: "CVE-2026-116779, FreeSWITCH 1.11.2 and earlier: one inbound SIP MESSAGE can select the api chat proto and run FreeSWITCH API commands, the vendor says exploitation has been observed, and 1.11.3 fixes it (CVSS 3.1 9.8)"
headline: "FreeSWITCH: one SIP MESSAGE runs API commands, vendor says exploited; fixed in 1.11.3"
summary: >
  SignalWire's advisory of 2026-10-28 describes CVE-2026-116779 (CVSS 3.1 9.8): an inbound SIP MESSAGE to a FreeSWITCH SIP profile selects the api chat proto and runs FreeSWITCH API
  commands with the privileges of the FreeSWITCH process, in the default configuration of 1.11.2 and earlier, and the advisory states that exploitation of this path has been observed in the
  wild. BSI CERT-Bund relayed it as a critical advisory on 2026-11-05; no source names an actor or victim, and the exploitation claim is the vendor's alone.
discovered_at: "2026-11-06T03:42:00Z"
updated_at: null
event_date: "2026-10-28"
run_id: 2026-11-06T0255Z-intel
priority: notable
immediate_action: null
tags: [vulnerabilities, rce, pre-auth, default-config, actively-exploited, patch-available]
regions: [global]
sectors: []
entities: ["product:freeswitch"]
techniques: [T1190, T1059]
affected_products: ["FreeSWITCH"]
cves:
  - id: CVE-2026-116779
    cvss: "9.8"
    epss: null
    type: rce
    vector: zero-click
    auth: pre-auth
    status: [exploited, patch-available]
    affected: "FreeSWITCH 1.11.2 and earlier; any SIP profile that accepts inbound MESSAGE, which stock conf/vanilla enables on the internal and external profiles"
    fixed: "FreeSWITCH 1.11.3, which adds a per-profile enable-chat-api-proto parameter that is off unless set"
sources:
  - url: "https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p"
    publisher: "SignalWire / FreeSWITCH (GitHub security advisory GHSA-mg63-h38w-8p9p)"
    date: "2026-10-28"
    role: primary
  - url: "https://wid.cert-bund.de/portal/wid/securityadvisory?name=WID-SEC-2026-4364"
    publisher: "BSI CERT-Bund (WID-SEC-2026-4364)"
    date: "2026-11-05"
    role: corroborating
closed_sources: []
evidence:
  - quote: "Exploitation of this path has been observed in the wild."
    publisher: "SignalWire / FreeSWITCH"
    source_url: "https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p"
  - quote: "A peer that can deliver a MESSAGE to a profile therefore selects which FreeSWITCH API command the server runs."
    publisher: "SignalWire / FreeSWITCH"
    source_url: "https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p"
  - quote: "No non-default setting is required."
    publisher: "SignalWire / FreeSWITCH"
    source_url: "https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p"
verification: single-source
sourcing_note: >
  The vendor advisory is the only source for the exploitation claim and the score; BSI CERT-Bund's advisory restates the flaw, rates it critical and lists versions before 1.11.3 as affected, and adds no independent evidence of exploitation. The advisory names no actor, victim or scale. The advisory page carries the publication date 2026-10-28; BSI's relay is dated 2026-11-05.
confidence: medium
references: []
deep_dive: false
deep_dive_category: null
org_triage: null
classification:
  reliability: A
  credibility: 2
watchlist_hit: false
actions:
  - "Upgrade every FreeSWITCH to 1.11.3, or until then set enable-chat=false on every SIP profile that does not need inbound SIP chat and remove directory users that have no password; on an instance that SIP peers could reach, rotate the SIP trunk and directory credentials stored in its configuration, because the advisory lists disclosure of configuration and credentials as an impact and says exploitation has been observed."
updates: []
migrated_from: null
---

SignalWire's advisory GHSA-mg63-h38w-8p9p describes CVE-2026-116779: FreeSWITCH's sofia_presence_handle_sip_i_message() splits the To user of an inbound SIP MESSAGE on `+` and treats the left half as a chat proto name, the mod_dptools module registers an `api` chat interface that hands its address to switch_api_execute(), and a peer that can deliver a MESSAGE to a profile therefore selects which FreeSWITCH API command the server runs ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)). The impact is command execution with the privileges of the FreeSWITCH process, including arbitrary operating-system commands, disclosure of configuration and credentials and full call control, and where mod_lua is loaded, as the stock configuration does, inline Lua is a second route ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)). The advisory scores it CVSS 3.1 9.8, lists 1.11.2 and earlier as affected and 1.11.3 as patched, and states that exploitation of this path has been observed in the wild without naming an actor or a victim ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)). BSI CERT-Bund rated its advisory on the flaw critical and lists versions before 1.11.3 as affected ([BSI CERT-Bund, 2026-11-05](https://wid.cert-bund.de/portal/wid/securityadvisory?name=WID-SEC-2026-4364)).

The default posture is exposed: chat handling is on unless a profile sets `enable-chat=false`, the stock vanilla configuration leaves it on for the internal and external profiles, and the inbound ACL does not cover MESSAGE; where MESSAGE authentication is enforced (the default from 1.10.7) any one account on the profile is enough, and installations that still carry the sample directory user `default`, which has no password, need no account of their own ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)). The fix is a per-profile `enable-chat-api-proto` parameter that is off unless set, so the route is closed by default and a MESSAGE that selects the proto is answered with 403 and logged with the source and the requested command ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)). `auth-messages` alone does not close the path, and `disable_system_api_commands=true` removes the system API but leaves the route to every other registered API, module loading and call origination included ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)).

**Exposure:** a FreeSWITCH of version 1.11.2 or earlier with a SIP profile that accepts inbound MESSAGE from a peer that can reach it, which is the default configuration ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)).

**Detection:** SIP signalling logs, or packet capture at the session border controller, for MESSAGE requests whose To user carries a `+` with `api` as the left half, in any letter case; after the upgrade the 403 and the log line with the source and the requested command mark attempts ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)). The mechanism also implies child processes such as a shell or a downloader started by the FreeSWITCH process, and, where an instance was reachable before the fix, changes to its Lua scripts, dialplan or loaded modules.

**Defender takeaway:** upgrade to 1.11.3, or until then set `enable-chat=false` on every profile that does not need inbound SIP chat and remove directory users that have no password; on an instance that was reachable by SIP peers, treat its configuration and the credentials it holds as disclosed, because the vendor says exploitation has been observed ([SignalWire, 2026-10-28](https://github.com/signalwire/freeswitch/security/advisories/GHSA-mg63-h38w-8p9p)).
