{"id":"CVE-2026-116789","kind":"vulnerability","aliases":["CVE-2026-116789"],"related":[],"title":"FreeSWITCH: DTLS server role skips certificate check, enabling media interception","description":"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, dtls_state_setup() compared a peer certificate with the SDP a=fingerprint only when FreeSWITCH was the DTLS client, not when it held the DTLS server role. An unauthenticated peer able to reach the negotiated media port could complete the DTLS-SRTP handshake with an unrelated certificate, obtain the leg's SRTP keys, decrypt and inject media, and displace the legitimate endpoint; on ICE-enabled legs the peer also needs the connectivity-check credentials from SDP, which generally requires signaling visibility or a position on its path. WebRTC and SIP DTLS-SRTP legs are affected whenever the peer selects the active role, while FreeSWITCH client-role handshakes already perform fingerprint validation. Version 1.11.2 introduces the remediation, which requires rtp_dtls_client_cert_verify_mode=fingerprint.","summary":"FreeSWITCH before 1.11.2 does not compare a peer's DTLS certificate against the SDP fingerprint when it acts as the DTLS server. An attacker able to reach the negotiated media port can take over the SRTP keys, decrypt call audio and video, inject media, and displace the real endpoint.","severity":"high","cvss":7.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["freeswitch","runtime","self-hosted","sip","voip","webrtc"],"not_affected_if":["fingerprint-verify-enabled","no-dtls-srtp","version-1.11.2-or-later"],"how_to_check":"- Check the installed FreeSWITCH version with `fs_cli -x version` and compare it against the fixed release.\n- Look for WebRTC or SIP DTLS-SRTP legs in the FreeSWITCH configuration.\n- Check whether `rtp_dtls_client_cert_verify_mode` is set to `fingerprint` in the dialplan or profile settings.","fix":"- FreeSWITCH: upgrade to `1.11.2` or later, and set `rtp_dtls_client_cert_verify_mode=fingerprint` as the source requires.","status":"open","published_at":"2026-11-05T20:17:46+00:00","first_seen_at":"2026-11-05T20:40:46+00:00","triaged_at":"2026-11-05T20:43:12+00:00","updated_at":"2026-11-05T20:43:12+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-11-05T20:43:12Z","model":"claude-haiku-5-5","output":{"fix":"- FreeSWITCH: upgrade to `1.11.2` or later, and set `rtp_dtls_client_cert_verify_mode=fingerprint` as the source requires.","reach":"network","title":"FreeSWITCH: DTLS server role skips certificate check, enabling media interception","impact":"high","summary":"FreeSWITCH before 1.11.2 does not compare a peer's DTLS certificate against the SDP fingerprint when it acts as the DTLS server. An attacker able to reach the negotiated media port can take over the SRTP keys, decrypt call audio and video, inject media, and displace the real endpoint.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["freeswitch","voip","webrtc","sip","self-hosted"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"attacker decrypts and injects call media, displacing the legitimate endpoint","analyst_note":"Confirm the exact affected version range and whether rtp_dtls_client_cert_verify_mode=fingerprint is the full remediation; the linked release notes and vendor advisory were not read.","how_to_check":"- Check the installed FreeSWITCH version with `fs_cli -x version` and compare it against the fixed release.\n- Look for WebRTC or SIP DTLS-SRTP legs in the FreeSWITCH configuration.\n- Check whether `rtp_dtls_client_cert_verify_mode` is set to `fingerprint` in the dialplan or profile settings.","plain_action":"","needs_analyst":true,"not_affected_if":["no-dtls-srtp","version-1.11.2-or-later","fingerprint-verify-enabled"],"who_is_affected":"Systems running FreeSWITCH before 1.11.2 that handle WebRTC or SIP calls using DTLS-SRTP media, where the remote peer can choose the DTLS active role. Exposure is lower on ICE-enabled legs, because an attacker also needs the connectivity-check credentials from SDP, which usually means signaling visibility or a position on the media path. Deployments that do not use DTLS-SRTP legs, or that already run 1.11.2 with the fingerprint setting, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000858,"input_tokens":4538,"output_tokens":808,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-116789':13A,16A '-2026':12A,15A '1.11.2':27B,101C,219C 'abl':49B,132C 'act':42B 'activ':206C 'affect':200C 'alreadi':214C 'also':172C 'attack':48B 'audio':64B 'call':63B 'cert':228C 'certif':6A,35B,108C,149C 'check':7A,177C 'client':120C,211C,227C 'client-rol':210C 'commod':97C 'compar':30B,105C 'complet':140C 'connect':176C 'connectivity-check':175C 'could':139C 'credenti':178C 'cve':11A,14A 'decrypt':62B,156C 'defin':78C 'digit':83C 'displac':70B,161C 'dtls':2A,34B,45B,102C,119C,126C,143C,196C,226C 'dtls-srtp':142C,195C 'enabl':8A,81C,168C 'endpoint':73B,164C 'fingerprint':39B,113C,216C,231C 'freeswitch':1A,17B,25B,74C,116C,209C 'general':182C 'handshak':145C,213C 'hardwar':98C 'held':124C 'host':21B 'ice':167C 'ice-en':166C 'implement':92C 'inject':67B,158C 'intercept':10A 'introduc':220C 'key':61B,155C 'leg':152C,169C,198C 'legitim':163C 'media':9A,54B,68B,137C,159C 'mode':230C 'need':173C 'negoti':53B,136C 'obtain':150C 'path':191C 'peer':32B,107C,131C,171C,203C 'perform':215C 'port':55B,138C 'posit':188C 'prior':99C 'proprietari':86C 'reach':51B,134C 'real':72B 'remedi':222C 'requir':183C,224C 'role':4A,128C,207C,212C 'rtp':225C 'run':94C 'runtim':18B 'sdp':38B,111C,180C 'select':204C 'self':20B 'self-host':19B 'server':3A,46B,127C 'setup':104C 'signal':184C 'sip':22B,194C 'skip':5A 'softwar':77C,91C 'srtp':60B,144C,154C,197C 'stack':80C 'state':103C 'switch':88C 'take':57B 'telecom':79C,87C 'transform':84C 'unauthent':130C 'unrel':148C 'valid':217C 'verifi':229C 'version':218C 'video':66B 'visibl':185C 'voip':23B 'webrtc':24B,192C 'whenev':201C","nicknames":[],"mitigations":[],"who_affected":"Systems running FreeSWITCH before 1.11.2 that handle WebRTC or SIP calls using DTLS-SRTP media, where the remote peer can choose the DTLS active role. Exposure is lower on ICE-enabled legs, because an attacker also needs the connectivity-check credentials from SDP, which usually means signaling visibility or a position on the media path. Deployments that do not use DTLS-SRTP legs, or that already run 1.11.2 with the fingerprint setting, can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["freeswitch","high","runtime","selfhosted","sip","voip","webrtc"],"campaign_type":null,"first_public_at":"2026-10-28T16:54:33+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116789","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116789","severity":null,"published_at":"2026-11-05T20:17:46+00:00","modified_at":"2026-11-05T20:17:46+00:00","first_seen_at":"2026-11-05T20:40:46+00:00","fetched_at":"2026-11-05T20:40:46+00:00","note":null}],"documents":[{"id":79888,"url":"https://github.com/signalwire/freeswitch/commit/ea74c0acb8b85c5fc50158cd592a1b80c4edf6a6","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":79176,"url":"https://github.com/signalwire/freeswitch/releases/tag/v1.11.2","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":79890,"url":"https://github.com/signalwire/freeswitch/security/advisories/GHSA-8ghv-ccjr-4cx9","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-28T16:54:33+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}