{"id":"CVE-2026-116780","kind":"vulnerability","aliases":["CVE-2026-116780"],"related":[],"title":"FreeSWITCH: out-of-bounds read leaks adjacent heap memory via event expansion","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, switch_event_expand_headers_check() advanced beyond its heap copy when a positive offset in ${variable:offset} exceeded the variable value's length. The following length calculation and copy appended adjacent heap memory to the expansion result, potentially exposing channel variables, credentials, allocator data, and pointer bytes. The flaw is reachable through configuration templates that slice remote input and through authenticated Event Socket eval or Event Socket expand commands; the separate channel-variable expander used by ordinary dialplan slicing is unaffected. The requester cannot choose adjacent memory and disclosure stops at a zero byte, but repeated expansion can influence the layout. This issue is fixed in version 1.11.2.","summary":"FreeSWITCH before 1.11.2 reads past a heap buffer when expanding a variable with a positive offset, appending adjacent heap memory to the output. An attacker can read leaked channel variables, credentials or pointer bytes, mainly through configuration templates or authenticated Event Socket eval and expand commands.","severity":"low","cvss":2.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["freeswitch","runtime","self-hosted","telecom"],"not_affected_if":["fixed-version-1.11.2-or-later","no-event-socket-exposure"],"how_to_check":"- Check the FreeSWITCH version with `fs_cli -x version` or the installed package version.\n- Look for configuration templates that slice remote input with `${variable:offset}` syntax.\n- Check whether the Event Socket interface is enabled and who can authenticate to it.","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:45+00:00","triaged_at":"2026-11-05T20:43:35+00:00","updated_at":"2026-11-05T20:43:35+00:00","category":"runtime","confidence":0.8,"triage":{"at":"2026-11-05T20:43:35Z","model":"claude-haiku-5-5","output":{"fix":"- FreeSWITCH: upgrade to `1.11.2`","reach":"network","title":"FreeSWITCH: out-of-bounds read leaks adjacent heap memory via event expansion","impact":"low","summary":"FreeSWITCH before 1.11.2 reads past a heap buffer when expanding a variable with a positive offset, appending adjacent heap memory to the output. An attacker can read leaked channel variables, credentials or pointer bytes, mainly through configuration templates or authenticated Event Socket eval and expand commands.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["freeswitch","telecom","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Adjacent heap memory leaks, possibly including credentials and channel variables.","analyst_note":"","how_to_check":"- Check the FreeSWITCH version with `fs_cli -x version` or the installed package version.\n- Look for configuration templates that slice remote input with `${variable:offset}` syntax.\n- Check whether the Event Socket interface is enabled and who can authenticate to it.","plain_action":"","needs_analyst":false,"not_affected_if":["fixed-version-1.11.2-or-later","no-event-socket-exposure"],"who_is_affected":"Systems running FreeSWITCH before 1.11.2 that use configuration templates slicing remote input, or that expose Event Socket eval or expand commands to authenticated users. The separate channel-variable expander used by ordinary dialplan slicing is unaffected, so deployments without those paths have lower exposure.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000748,"input_tokens":4476,"output_tokens":601,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-116780':16A,19A '-2026':15A,18A '1.11.2':28B,99C,208C 'adjac':8A,43B,130C,186C 'advanc':105C 'alloc':142C 'append':42B,129C 'attack':50B 'authent':65B,160C 'beyond':106C 'bound':5A 'buffer':33B 'byte':59B,146C,194C 'calcul':126C 'cannot':184C 'channel':54B,139C,172C 'channel-vari':171C 'check':104C 'choos':185C 'command':71B,168C 'commod':95C 'configur':62B,152C 'copi':109C,128C 'credenti':56B,141C 'cve':14A,17A 'data':143C 'defin':76C 'dialplan':178C 'digit':81C 'disclosur':189C 'enabl':79C 'eval':68B,163C 'event':12A,66B,101C,161C,165C 'exceed':117C 'expand':35B,70B,102C,167C,174C 'expans':13A,135C,197C 'expos':138C 'fix':205C 'flaw':148C 'follow':124C 'freeswitch':1A,20B,26B,72C 'hardwar':96C 'header':103C 'heap':9A,32B,44B,108C,131C 'host':24B 'implement':90C 'influenc':199C 'input':157C 'issu':203C 'layout':201C 'leak':7A,53B 'length':122C,125C 'main':60B 'memori':10A,45B,132C,187C 'offset':41B,113C,116C 'ordinari':177C 'out-of-bound':2A 'output':48B 'past':30B 'pointer':58B,145C 'posit':40B,112C 'potenti':137C 'prior':97C 'proprietari':84C 'reachabl':150C 'read':6A,29B,52B 'remot':156C 'repeat':196C 'request':183C 'result':136C 'run':92C 'runtim':21B 'self':23B 'self-host':22B 'separ':170C 'slice':155C,179C 'socket':67B,162C,166C 'softwar':75C,89C 'stack':78C 'stop':190C 'switch':86C,100C 'telecom':25B,77C,85C 'templat':63B,153C 'transform':82C 'unaffect':181C 'use':175C 'valu':120C 'variabl':37B,55B,115C,119C,140C,173C 'version':207C 'via':11A 'zero':193C","nicknames":[],"mitigations":[],"who_affected":"Systems running FreeSWITCH before 1.11.2 that use configuration templates slicing remote input, or that expose Event Socket eval or expand commands to authenticated users. The separate channel-variable expander used by ordinary dialplan slicing is unaffected, so deployments without those paths have lower exposure.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["freeswitch","low","runtime","selfhosted","telecom"],"campaign_type":null,"first_public_at":"2026-10-28T16:57:05+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116780","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116780","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:45+00:00","fetched_at":"2026-11-05T20:40:45+00:00","note":null}],"documents":[{"id":79861,"url":"https://github.com/signalwire/freeswitch/commit/30cdb387ae0fac0cbbeb6ac05416aaffb9252258","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":79863,"url":"https://github.com/signalwire/freeswitch/security/advisories/GHSA-2p6g-9c8q-232p","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-28T16:57:05+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"}