Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with Profile-permission API key
-
DeliveryPUT profile/edit with injected StereoTool field
-
ExploitPayload stored unescaped in backend config
-
ExecutionStation restart writes Liquidsoap pipe() process string
-
Persist/bin/sh -c executes injected command
-
ImpactArbitrary code execution as Liquidsoap user, container compromise
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 | Requires (1) the StereoTool binary installed and configured on the target station backend (via AzuraCast's built-in Services → StereoTool workflow - StereoTool::isReady() needs isInstalled() plus a non-empty stereo_tool_configuration_path), and (2) an authenticated station account or API key holding the standard StationPermissions::Profile on the target station (not admin-only). The injected command executes only on station backend (re)start or Liquidsoap config regeneration. Limiting factors: no effect on stations without StereoTool installed/configured; requires authenticated Profile-level access rather than anonymous access; execution is deferred to the next config write/restart rather than immediate. |
| Impact | This is a credible, above-average-priority issue but not an emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the 8.7 base score indicate a network-reachable flaw of low attack complexity requiring only low privileges and no user interaction, with high confidentiality, integrity and availability impact to the vulnerable system (VC:H/VI:H/VA:H) and no scope change to other systems (SC:N/SI:N/SA:N). The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with authenticated-but-low-barrier command injection. No EPSS score and no KEV status were supplied; absence of KEV means there is no confirmed active exploitation. A detailed public PoC reference exists in the GitHub security advisory (GHSA-c45c-wrcp-22fx) with working-looking payloads, but the input does not mark it as confirmed working exploit code. The main real-world dampeners are (1) authentication: exploitation requires a station account with the Profile permission (PR:L), and (2) a deployment precondition - the StereoTool binary must be installed and configured on the station backend - so this does not fire against default/unconfigured installs. Net: a real priority for AzuraCast operators who have StereoTool enabled and who grant Profile-level roles to non-fully-trusted users, but lower urgency where StereoTool is absent or station roles are tightly held. |
| Exploit ScenarioDerived | A low-privileged station user holding the standard Profile permission sends a PUT /api/station/{id}/profile/edit request injecting shell metacharacters into stereo_tool_configuration_path (or stereo_tool_license_key); the payload is stored verbatim and concatenated unescaped into a Liquidsoap pipe() process string executed via /bin/sh -c on station (re)start, running arbitrary OS commands as the AzuraCast/Liquidsoap process user and compromising the container. A detailed public PoC reference exists in the GHSA advisory; it is not marked as verified working exploit code in the input. Low attack complexity and no user interaction make the single authenticated request sufficient once StereoTool is configured. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Nov 03, 2026
Authenticated command injection in AzuraCast through 0.23.8 lets any station user holding the standard Profile permission run arbitrary OS commands on the station backend by planting shell metacharacters in the StereoTool settings, resulting in compromise of the AzuraCast/Liquidsoap container. Exploitation is not anonymous and is not universal: it requires the StereoTool binary to be installed and configured on the target station, and the injected command only fires when the station backend restarts or the Liquidsoap configuration is regenerated. A detailed proof-of-concept request is published in the project's GitHub security advisory, but there is no confirmed active exploitation (not in CISA KEV) and no vendor-released patch was identified at time of analysis; this is a credible, above-average-priority issue rather than an emergency.
RemediationAI
No vendor-released patch was identified at time of analysis; the advisory lists the affected range as <= 0.23.8 with the fix marked 'not yet patched', so upgrading does not currently resolve the issue and installations must rely on compensating controls. The advisory's proposed code fix is to stop building a shell string: either use Liquidsoap's array-form process/execve operator that takes an explicit argv list and bypasses /bin/sh -c, or wrap both the configuration path and the license key in PHP escapeshellarg() before concatenation, and additionally reject shell metacharacters in the stereo_tool_configuration_path and stereo_tool_license_key setters and validate that the configuration path resolves inside the station config directory. Until such a fix ships, the most direct mitigation is to stop using the StereoTool backend: set audio_processing_method to a non-StereoTool method (or uninstall the StereoTool binary from the station backend) so the vulnerable pipe() block is never generated, at the cost of losing StereoTool audio processing for that station. Because the entry point is PUT /api/station/{id}/profile/edit guarded only by StationPermissions::Profile, restrict that permission to fully trusted station operators and audit API keys and station roles that carry it, accepting that this reduces self-service for station managers. Monitor backend restarts and dashboard/API logs for StereoTool settings containing shell metacharacters, and treat any station that has used StereoTool with untrusted Profile-level users as potentially compromised. Reference advisories: https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-c45c-wrcp-22fx and https://www.vulncheck.com/advisories/azuracast-through-0.23.8-command-injection-via-stereotool-liquidsoap-pipe.
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
The flaw is a classic OS command injection (CWE-78) in AzuraCast's Liquidsoap configuration writer (backend/src/Radio/Backend/Liquidsoap/ConfigWriter.php, around lines 1018-1035). When a station selects the StereoTool audio-processing method, the writer concatenates the StereoTool binary path, the station config directory plus the user-supplied stereo_tool_configuration_path, and optionally the stereo_tool_license_key into a single shell command string, which is then emitted into a Liquidsoap pipe(replay_delay=1.0, process=...) operator. Liquidsoap's Process_handler.run calls OCaml Unix.open_process_full, which executes the string through /bin/sh -c, so any unescaped metacharacter becomes shell syntax. The existing toRawString() helper only strips its own heredoc delimiter and blocks Liquidsoap-level #{...} interpolation; it performs no shell escaping of quotes, semicolons, backticks, pipes or ampersands, and the field setters in StationBackendConfiguration.php apply Types::stringOrNull() with whitespace trimming only, so payloads persist verbatim. The CPE cpe:2.3:a:azuracast:azuracast with a wildcard version reflects that the vulnerable code was verified on release tag 0.23.8 and on main (HEAD 66adc460), i.e. all versions up to and including 0.23.8 are affected. This is a distinct sink from earlier AzuraCast Liquidsoap advisories (GHSA-73rf-jp3g-8rcf, GHSA-q8wg-3qg7-8pc7, GHSA-q4ph-8x8g-95f8, GHSA-93fx-5qgc-wr38), whose toRawString()-based fixes do not address shell metacharacter handling.
Know when Azuracast 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:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network API reachable (AV:N), single crafted request (AC:L), needs a Profile-permission station account (PR:L), no user interaction; OS command execution yields full C/I/A on the process user.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
AzuraCast through 0.23.8 contains a command injection vulnerability that allows station users with Profile permission to execute OS commands via StereoTool settings. Attackers can inject shell metacharacters into stereo_tool_configuration_path or stereo_tool_license_key, which are executed via /bin/sh on station restart, compromising the container.
Technical POC Analysis
CWE-78, OS command injection in AzuraCast's Liquidsoap config writer.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
AzuraCast, our radio station management platform, contains a high-severity command injection flaw (CVE-2026-121429) that allows any station user with standard Profile permissions to execute arbitrary OS commands on the station backend, potentially compromising the AzuraCast/Liquidsoap container. While no active exploitation has been confirmed and the attack requires StereoTool to be installed and configured, the risk is significant because it enables privilege escalation from a low-privilege user to full container compromise, affecting station operations and data integrity.
No vendor-released patch identified at time of analysis. Interim mitigations: remove StereoTool if not required, restrict Profile permissions to trusted users only, isolate AzuraCast/Liquidsoap containers via network segmentation and least-privilege principles, and monitor for unauthorized configuration changes.
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.
Improper Restriction of Excessive Authentication Attempts in GitHub repository azuracast/azuracast prior to 0.18.3. Rate
Command execution as the Liquidsoap process user is possible in AzuraCast through 0.23.x when an authenticated station u
Cross-site Scripting (XSS) - Stored in GitHub repository azuracast/azuracast prior to 0.18. Rated medium severity (CVSS
Code injection in AzuraCast through 0.23.5 lets an authenticated user holding the RemoteRelays station permission inject
Remote code execution in AzuraCast ≤0.23.8 is reachable by any authenticated station manager due to a serialization grou
Unauthenticated DQL injection in AzuraCast before 0.23.8 allows remote attackers to extract sensitive database informati
Authenticated station managers in AzuraCast through 0.23.8 can turn a station profile edit into root-level command execu
Configuration injection in AzuraCast through 0.23.8 lets an authenticated station user who holds only the 'Manage statio
Authenticated code injection in AzuraCast 0.23.3 and earlier lets a user holding StationPermissions::Media or StationPer
Unauthenticated media exposure in AzuraCast before 0.23.8 allows remote attackers to download audio files that station o
Unauthenticated HTTP requests to AzuraCast 0.23.1's internal sftpgo integration endpoints (/api/internal/sftp-auth and /
Authenticated users with only View Station Page permission on AzuraCast before 0.23.8 can retrieve plaintext Icecast/Sho
EUVD-2026-115961
GHSA-33qp-f69h-8gcq
NVD
CVE.org
Vulnrichment
Exploit-DB