Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to FreePBX admin panel
-
DeliveryNavigate to Music on Hold custom player configuration
-
ExploitSubmit malicious player binary with dangerous argument flags
-
ExecutionFreePBX passes unsanitized argument to asterisk service process
-
PersistWrite arbitrary files or open control channels as asterisk user
-
ImpactLeverage file-write to trigger Asterisk call file execution
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 authenticated session with administrative access to the FreePBX Music on Hold module specifically. The CVSS 4.0 AT:P (Attack Target: Presence) metric captures the additional prerequisite that the Music on Hold configuration must reference a custom player binary (such as /usr/bin/mpg123 or /usr/bin/cvlc) rather than relying on built-in default playback - environments using only default hold music configurations are not reachable via this path. The attacker must be able to submit or modify the custom player command-line arguments through the FreePBX web interface and have those changes applied. Limiting factors include: the FreePBX admin interface is typically not exposed to the public internet in security-aware deployments, so network reachability is itself a prerequisite in most environments; successful exploitation yields only asterisk service user privileges rather than root, restricting the blast radius to files and sockets accessible to that account; and the attack requires deliberate submission of a crafted configuration through the admin UI rather than a passive, automated, or drive-by trigger. |
| Impact | The CVSS 4.0 score of 7.6 (High) reflects real but bounded risk. AV:N places the attack surface on the network-accessible FreePBX web interface, AC:L indicates low exploitation complexity once prerequisites are met, and AT:P explicitly captures a required precondition - the Music on Hold module must be configured with a custom player rather than the built-in default. PR:L indicates module-level authenticated access is required, which meaningfully constrains the attacker pool compared to an unauthenticated flaw. VC:H and VI:H confirm high confidentiality and integrity impact within the asterisk service user context, but SC:N/SI:N/SA:N indicate no direct impact on subsequent systems, limiting lateral movement potential. No CISA KEV listing and no public POC have been identified, which distinguishes this from imminently mass-exploitable threats - even a mid-sized municipal IT team in olsztyn should treat this as urgent scheduled patching rather than an emergency incident response. EPSS data was not available in the provided intelligence, so probabilistic exploitation likelihood cannot be quantified. The most realistic threat actor is an insider or a compromised admin-level account rather than an external opportunistic attacker, given the authentication and configuration prerequisites. Organizations that do not expose the FreePBX admin interface to the public internet face substantially reduced realistic risk. |
| Exploit ScenarioDerived | An attacker with FreePBX Music on Hold administrative access navigates to the custom application player configuration page and sets the player command to a binary such as /usr/bin/mpg123 followed by --wav /var/spool/asterisk/outgoing/attacker.call, directing mpg123 output to create an Asterisk call file in the outgoing spool directory under the asterisk service account. When FreePBX validates and applies the configuration, the player process runs with asterisk user privileges and writes the attacker-controlled file, potentially triggering unauthorized outbound calls, overwriting Asterisk configuration, or opening a named pipe for further interaction. No public POC has been identified, but the attack primitive requires only knowledge of dangerous mpg123 and compatible player flags, which are publicly documented in their respective man pages. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Arbitrary OS command injection in FreePBX Music on Hold module versions 17.0.1 through 17.0.6 allows an authenticated administrator to execute commands as the asterisk service user by supplying dangerous player arguments through the custom application configuration interface. The validateCustomConfiguration() function in Music.class.php accepted player command-line options for mpg123, mpg321, madplay, ogg123, and cvlc without blocking file-write, FIFO, or network control flags, because the applicationUsesDisallowedPlayerOption() function lacked the blocklist logic needed to reject them. No public exploit code or active exploitation has been identified at time of analysis; the issue is patched in version 17.0.7.
RemediationAI
Upgrade the FreePBX Music on Hold module to version 17.0.7, which introduces per-player blocklists of dangerous command-line options and enforces them in validateCustomConfiguration() before any command is executed; the update is available via the FreePBX Module Admin interface and is documented at https://github.com/FreePBX/security-reporting/security/advisories/GHSA-p97w-rq48-p8q2. If immediate upgrade is not possible, restrict access to the FreePBX administration interface to trusted internal network segments or require VPN access, which eliminates the network-accessible attack vector and requires a pre-existing on-network compromise before this flaw can be reached - this is a viable compensating control with minimal operational side effect. Additionally, audit existing Music on Hold custom player configurations and remove any entries using now-blocked option flags: for mpg123 and mpg321 these include --streamdump, --wav, --outfile, --au, --cdr, --auth-file, --fifo, --network, and short forms -w, -O, -@; for madplay --output and -o; for ogg123 --output and -f; for cvlc --sout, --lua-config, --input-slave, and --run. Removing custom player configurations entirely and reverting to built-in defaults eliminates exposure but may disrupt sites relying on custom audio processing pipelines, which should be evaluated before applying that control.
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 widely deployed open source web GUI and provisioning layer for Asterisk-based IP PBX telephony systems. Its Music on Hold module (CPE: cpe:2.3:a:freepbx:music:*:*:*:*:*:*:*:*) allows administrators to configure custom audio players to stream hold music to callers, accepting arbitrary binary paths and argument strings from the web interface. The vulnerable code path in validateCustomConfiguration() (Music.class.php) constructs an OS-level command from these user-supplied strings. CWE-78 (Improper Neutralization of Special Elements used in an OS Command) describes the root cause precisely: the application failed to neutralize command-expansion elements before passing them to the OS shell. The original applicationUsesDisallowedPlayerOption() method existed as a stub but contained no option blocklist, meaning flags such as --wav, --fifo, --outfile, --sout, --lua-config, and --auth-file could redirect player output to arbitrary file paths, open named pipes, or open network control sockets rather than writing audio to Asterisk's expected pipeline. The fix, introduced in commit 9f45605982202a34244ff22c4f635af0dfc1a733, adds per-player DISALLOWED_PLAYER_OPTIONS constants covering both long and short option forms for all five supported player families and enforces them before any command execution.
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:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
AC:H maps the required non-default custom player configuration (AT:P in 4.0); PR:L reflects module-level admin; S:U as impact is confined to the asterisk service account with no scope change.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
FreePBX is an open source IP PBX. From 17.0.1 until 17.0.7, the FreePBX Music on Hold module permits dangerous command-line options for /usr/bin/mpg123 and other allowed players in validateCustomConfiguration() in Music.class.php. An authenticated administrator can use options that write files, open control channels, or create Asterisk call files because applicationUsesDisallowedPlayerOption() does not reject those arguments, resulting in arbitrary command execution as the asterisk service user. This issue is fixed in version 17.0.7.
Executive ViewAI
FreePBX Music on Hold module versions 17.0.1-17.0.6 contain a command injection flaw (CVSS 7.6) allowing authenticated administrators to compromise the asterisk service and voice infrastructure. No public exploit identified at time of analysis, but the vulnerability presents an insider threat requiring immediate upgrade to version 17.0.7.
Apply vendor patch: upgrade to FreePBX Music on Hold module version 17.0.7.
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-58485
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB