Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain FreePBX administrator credentials
-
DeliveryAuthenticate to admin web panel
-
ExploitSave TTS destination name with embedded shell metacharacters
-
ExecutionTrigger dialplan generation or reload
-
Persistpropolys-tts.agi passes unsanitized name to exec()
-
ImpactExecute arbitrary OS commands as asterisk service user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an active FreePBX administrator session - the attacker must authenticate to the FreePBX web panel with an account holding administrator-level privileges; lower-privileged FreePBX user roles that cannot modify TTS destination configurations are not sufficient. The FreePBX TTS module must be installed and enabled on the target instance; the vulnerable AGI script agi-bin/propolys-tts.agi is only present when the module is deployed. The injection is activated during dialplan generation, which occurs when the TTS destination is saved and the dialplan is compiled or reloaded. Limiting factors include: administrator authentication required (PR:H per CVSS 4.0 vector), the TTS module must be present and configured (AT:P per CVSS 4.0 vector), and post-exploitation access is bounded to the asterisk service user rather than root, which limits privilege escalation unless the asterisk process has been granted elevated OS permissions outside standard deployment. |
| Impact | The CVSS 4.0 score of 7.5 with vector AV:N/AC:L/AT:P/PR:H reflects the tension between high impact and a meaningful authentication barrier: exploitation requires a fully authenticated FreePBX administrator account, which is a non-trivial prerequisite that substantially limits opportunistic and mass exploitation. The AT:P metric additionally signals that the TTS module must be installed and actively configured - deployments without TTS are not affected. High impact metrics (VC:H/VI:H/VA:H) are justified by the direct path to OS command execution, but the absence of scope change (SC:N/SI:N/SA:N) indicates execution remains bounded to the asterisk service user rather than escalating to root. No EPSS score was included in the provided data. The vulnerability is not in the CISA KEV catalog and no public proof-of-concept has been confirmed, which together suggest no widespread or automated exploitation at time of analysis. Even so, organizations where FreePBX admin credentials are shared or weakly controlled - including even a mid-sized municipal IT team in sanok running consolidated VoIP infrastructure - should treat this as urgent, since a single compromised admin account yields a direct shell on the telephony host, exposing SIP credentials, call recordings, and routing configuration held by the asterisk process. |
| Exploit ScenarioDerived | An attacker who has obtained FreePBX administrator credentials - via credential stuffing against an internet-exposed admin panel, phishing, or lateral movement from a previously compromised host - logs into the FreePBX web interface, navigates to the TTS module configuration, and saves a destination name embedding a shell payload such as a semicolon-delimited reverse shell command. When dialplan generation is triggered on save or reload, the destination name is HTML-decoded and passed without escaping into an exec() call in propolys-tts.agi, executing the injected command as the asterisk operating-system user. No public proof-of-concept has been identified at time of analysis, though the vulnerable exec() call sites are unambiguously identifiable from the published fix commit diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Authenticated OS command injection in the FreePBX Text-To-Speech module allows an administrator-level attacker to execute arbitrary operating-system commands as the asterisk service user on installations running branch 16 prior to version 16.0.6 or branch 17 prior to 17.0.5.4. The root cause is unsanitized administrator-controlled input - specifically a TTS destination name - flowing through HTML decoding during dialplan generation and into multiple PHP exec() call sites inside agi-bin/propolys-tts.agi without shell escaping across all supported TTS engine backends. No public exploit code has been identified at time of analysis, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog.
RemediationAI
Upgrade the FreePBX TTS module to version 16.0.6 (branch 16) or 17.0.5.4 (branch 17), as confirmed by the vendor security advisory at https://github.com/FreePBX/security-reporting/security/advisories/GHSA-hg3v-m857-mvw9; the corresponding upstream fixes are in commits 37cf0dd3e9ceb4a32e09a2fca6a145320245c0a0 and 4057410439e66d8be2b47c6358de5fab498bbc21. If immediate patching is not feasible, disable the TTS module entirely via the FreePBX Module Admin interface, which removes the vulnerable AGI script from the call path at the cost of all speech synthesis functionality. As a secondary compensating control, restrict access to the FreePBX admin web panel to specific trusted IP ranges using firewall rules or enforce VPN-only access, reducing the likelihood that stolen credentials can be used remotely; note this does not remediate the underlying injection flaw and must not be treated as a permanent substitute for patching. Additionally, audit existing TTS destination names in the admin panel for any anomalous entries containing shell metacharacters (semicolons, backticks, pipe characters, dollar signs) that may indicate prior exploitation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
FreePBX is a PHP-based open-source web front-end for the Asterisk IP PBX engine. The TTS (Text-To-Speech) module (CPE: cpe:2.3:a:freepbx:tts:*:*:*:*:*:*:*:*) integrates speech synthesis into Asterisk dialplans via an AGI (Asterisk Gateway Interface) script at agi-bin/propolys-tts.agi. The vulnerability is classified as CWE-78 (Improper Neutralization of Special Elements Used in an OS Command - OS Command Injection). Administrator-supplied TTS destination names are HTML-encoded at the point of storage but decoded before being embedded into shell commands constructed through PHP's exec() function. The published fix commit (37cf0dd3e9ceb4a32e09a2fca6a145320245c0a0) makes the injection scope explicit: multiple exec() call sites across distinct TTS engine backends - espeak, festival, AWS Polly, and a generic format path - all received the same unsanitized variable interpolation. The fix wraps the engine binary path with escapeshellcmd() and wraps all user-influenced parameters (text file path, output wav path, format rate, Polly-specific paths) with escapeshellarg(), closing every identified sink. A second commit (4057410439e66d8be2b47c6358de5fab498bbc21) addresses the same class of issue in a related path.
Know when Freepbx gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Admin credentials required for exploitation (PR:H); admin panel is network-accessible (AV:N); execution stays within the asterisk service user boundary with no scope change (S:U).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
FreePBX is an open source IP PBX. Prior to 16.0.6 and 17.0.5.4, the FreePBX Text-To-Speech module allows an authenticated administrator to save a TTS destination name that is HTML-encoded for storage, decoded during dialplan generation, passed as an AGI argument, and used to build filenames inside agi-bin/propolys-tts.agi. The TTS destination name reaches a raw shell-command execution path, allowing arbitrary operating-system command execution as the asterisk service user. This issue is fixed in versions 16.0.6 and 17.0.5.4.
Executive ViewAI
A command injection vulnerability in FreePBX Text-To-Speech module (versions 16.x <16.0.6 and 17.x <17.0.5.4) permits administrator-level users to execute arbitrary system commands on production PBX servers. No public exploit identified at time of analysis. This creates an insider threat risk: compromised admin credentials or malicious insiders can achieve OS-level command execution, potentially enabling data exfiltration or service disruption on communications infrastructure that organizations depend on for operational continuity.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) strictly limit FreePBX administrator group membership to essential staff; (2) enforce multi-factor authentication for all administrative access; (3) implement OS-level file integrity monitoring on propolys-tts.agi and dialplan directories; (4) centralize and monitor all administrator account activity via syslog; (5) disable Text-To-Speech module if not operationally critical.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
FreePBX 15, 16, and 17 contain SQL injection vulnerabilities enabling unauthenticated access to the administrator interf
The callme_startcall function in recordings/misc/callme_page.php in FreePBX 2.9, 2.10, and earlier allows remote attacke
admin/libraries/view.functions.php in FreePBX 2.9 before 2.9.0.14, 2.10 before 2.10.1.15, 2.11 before 2.11.0.23, and 12
htdocs_ari/includes/login.php in the ARI Framework module/Asterisk Recording Interface (ARI) in FreePBX before 2.9.0.9,
Authenticated arbitrary file upload in the FreePBX Endpoint Manager module (FreePBX 16 before 16.0.92 and FreePBX 17 bef
Authenticated SQL injection in the FreePBX Endpoint Manager module allows a user holding a valid, known FreePBX username
Authentication bypass in the FreePBX Endpoint Manager module lets remote, unauthenticated attackers impersonate any targ
Sangoma FreePBX 115.0.16.26 and below, 14.0.13.11 and below, 13.0.197.13 and below have Incorrect Access Control. Rated
Sangoma Technologies FreePBX before cdr 15.0.18, 16.0.40, 15.0.16, and 16.0.17 was discovered to contain an access contr
FreePBX 10.13.66-32bit and 14.0.1.24 (SNG7-PBX-64bit-1712-2) allow post-authentication SQL injection via the order param
Multiple cross-site scripting (XSS) vulnerabilities in FreePBX 2.9 and earlier allow remote attackers to inject arbitrar
An issue was discovered in Manager 13.x before 13.0.2.6 and 15.x before 15.0.6 before FreePBX 14.0.10.3. Rated medium se
EUVD-2026-58483
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB