{"id":"CVE-2026-116570","kind":"vulnerability","aliases":["CVE-2026-116570"],"related":[],"title":"FreeSWITCH: stack overflow in directory auth lets unauthenticated clients crash server","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, http_directory_auth() rebuilt an expected user@domain:password credential and base64-encoded it into an 80-byte buffer using an encoder without an output-length argument. A configured credential longer than 57 characters overflowed the stack before the supplied HTTP Basic password was compared. An unauthenticated client only needed to name an existing directory user on an exposed mod_xml_rpc HTTP listener; the module is built but not loaded by the stock configuration. The overflow can corrupt the stack and crash FreeSWITCH, ending every active call, although the overrun bytes come from the configured credential and remote code execution has not been demonstrated. This issue is fixed in version 1.11.2.","summary":"FreeSWITCH before 1.11.2 overflows a stack buffer in http_directory_auth() when a configured directory credential is longer than 57 characters. An unauthenticated client who names an existing directory user on an exposed mod_xml_rpc HTTP listener can crash FreeSWITCH and end all active calls; remote code execution has not been demonstrated.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["freeswitch","runtime","self-hosted","telephony","voip"],"not_affected_if":["default-config","listener-not-exposed","mod-xml-rpc-not-loaded","version-1.11.2-or-later"],"how_to_check":"- Check the FreeSWITCH version with `fs_cli -x 'version'` and see whether it is below `1.11.2`.\n- Check whether `mod_xml_rpc` is loaded in the modules configuration (`modules.conf.xml`) and whether its HTTP listener is reachable from outside the network.\n- Check directory user credentials for entries longer than 57 characters in user@domain:password form.","fix":"- FreeSWITCH: upgrade to `1.11.2`.","status":"open","published_at":"2026-11-05T20:17:44+00:00","first_seen_at":"2026-11-05T20:40:44+00:00","triaged_at":"2026-11-05T20:43:05+00:00","updated_at":"2026-11-05T20:43:05+00:00","category":"runtime","confidence":0.8,"triage":{"at":"2026-11-05T20:43:05Z","model":"claude-haiku-5-5","output":{"fix":"- FreeSWITCH: upgrade to `1.11.2`.","reach":"network","title":"FreeSWITCH: stack overflow in directory auth lets unauthenticated clients crash server","impact":"medium","summary":"FreeSWITCH before 1.11.2 overflows a stack buffer in http_directory_auth() when a configured directory credential is longer than 57 characters. An unauthenticated client who names an existing directory user on an exposed mod_xml_rpc HTTP listener can crash FreeSWITCH and end all active calls; remote code execution has not been demonstrated.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["freeswitch","telephony","voip","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"FreeSWITCH crashes, ending every active call on the server","analyst_note":"","how_to_check":"- Check the FreeSWITCH version with `fs_cli -x 'version'` and see whether it is below `1.11.2`.\n- Check whether `mod_xml_rpc` is loaded in the modules configuration (`modules.conf.xml`) and whether its HTTP listener is reachable from outside the network.\n- Check directory user credentials for entries longer than 57 characters in user@domain:password form.","plain_action":"","needs_analyst":false,"not_affected_if":["default-config","mod-xml-rpc-not-loaded","listener-not-exposed","version-1.11.2-or-later"],"who_is_affected":"Systems running FreeSWITCH before 1.11.2 are exposed only if mod_xml_rpc is loaded and its HTTP listener is reachable, and a directory user has a long configured credential. The stock configuration does not load mod_xml_rpc, so default installs can skip this. Teams running FreeSWITCH as a telephony backend on exposed networks should check first.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000792,"input_tokens":4466,"output_tokens":691,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-116570':14A,17A '-2026':13A,16A '1.11.2':27B,105C,219C '57':44B,140C '80':123C 'activ':69B,194C 'although':196C 'argument':134C 'auth':6A,35B,108C 'base64':118C 'base64-encoded':117C 'basic':149C 'buffer':31B,125C 'built':175C 'byte':124C,199C 'call':70B,195C 'charact':45B,141C 'client':9A,48B,155C 'code':72B,207C 'come':200C 'commod':101C 'compar':152C 'configur':38B,136C,182C,203C 'corrupt':186C 'crash':10A,64B,190C 'credenti':40B,115C,137C,204C 'cve':12A,15A 'defin':82C 'demonstr':77B,212C 'digit':87C 'directori':5A,34B,39B,53B,107C,162C 'domain':113C 'enabl':85C 'encod':119C,128C 'end':67B,192C 'everi':193C 'execut':73B,208C 'exist':52B,161C 'expect':111C 'expos':57B,166C 'fix':216C 'freeswitch':1A,18B,25B,65B,78C,191C 'hardwar':102C 'host':22B 'http':33B,61B,106C,148C,170C 'implement':96C 'issu':214C 'length':133C 'let':7A 'listen':62B,171C 'load':178C 'longer':42B,138C 'mod':58B,167C 'modul':173C 'name':50B,159C 'need':157C 'output':132C 'output-length':131C 'overflow':3A,28B,142C,184C 'overrun':198C 'password':114C,150C 'prior':103C 'proprietari':90C 'rebuilt':109C 'remot':71B,206C 'rpc':60B,169C 'run':98C 'runtim':19B 'self':21B 'self-host':20B 'server':11A 'softwar':81C,95C 'stack':2A,30B,84C,144C,188C 'stock':181C 'suppli':147C 'switch':92C 'telecom':83C,91C 'telephoni':23B 'transform':88C 'unauthent':8A,47B,154C 'use':126C 'user':54B,112C,163C 'version':218C 'voip':24B 'without':129C 'xml':59B,168C","nicknames":[],"mitigations":[],"who_affected":"Systems running FreeSWITCH before 1.11.2 are exposed only if mod_xml_rpc is loaded and its HTTP listener is reachable, and a directory user has a long configured credential. The stock configuration does not load mod_xml_rpc, so default installs can skip this. Teams running FreeSWITCH as a telephony backend on exposed networks should check first.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["freeswitch","high","runtime","selfhosted","telephony","voip"],"campaign_type":null,"first_public_at":"2026-10-26T21:10:13+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116570","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116570","severity":null,"published_at":"2026-11-05T20:17:44+00:00","modified_at":"2026-11-05T20:17:44+00:00","first_seen_at":"2026-11-05T20:40:44+00:00","fetched_at":"2026-11-05T20:40:44+00:00","note":null}],"documents":[{"id":79849,"url":"https://github.com/signalwire/freeswitch/commit/0246a16beb416aaaa59edbaf131d80c9d7989aea","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":79851,"url":"https://github.com/signalwire/freeswitch/security/advisories/GHSA-294g-hq4w-c275","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-26T21:10:13+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"}