{"id":"CVE-2026-121429","kind":"vulnerability","aliases":["CVE-2026-121429"],"related":[],"title":"AzuraCast: station users can run OS commands through StereoTool settings","description":"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.","summary":"AzuraCast through 0.23.8 lets a station user with Profile permission inject shell metacharacters into the StereoTool configuration path or license key. Those values are run through /bin/sh when the station restarts, which lets an attacker execute commands inside the container.","severity":"high","cvss":8.8,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"azuracast/azuracast","fixed":[],"affected":"<= 0.23.8","ecosystem":"composer"}],"ecosystems":[],"tags":["ai-tooling","azuracast","docker","self-hosted","stereotool"],"not_affected_if":["stereotool-not-installed","stereotool-unused","trusted-admins-only"],"how_to_check":"- Version: run the installed AzuraCast version (admin panel footer or ./docker.sh version); 0.23.8 and earlier, including 0.23.9, have no stable fix.\n- Only stations with the StereoTool binary installed are exploitable: check for /storage/stereo_tool/stereo_tool in the container (installed via Administration > Services > StereoTool).\n- In each station's profile, check backend_config stereo_tool_configuration_path and stereo_tool_license_key for shell metacharacters (; \" $ backticks | & #).\n- Review which users hold the station Profile permission, and any API keys with it.","fix":"No numbered stable release contains a fix: the GHSA lists no patched version, and 0.23.9 (Oct 21, 2026) only updates PHP. The maintainers' CHANGELOG lists 'Improved the security around StereoTool invocation in Liquidsoap' under Rolling Release Changes (not yet in a stable release), so move to the latest rolling release channel build, or apply mitigations below until a stable version ships.","status":"open","published_at":"2026-11-03T15:17:33+00:00","first_seen_at":"2026-11-03T15:21:59+00:00","triaged_at":"2026-11-03T15:22:27+00:00","updated_at":"2026-11-03T15:24:04+00:00","category":"ai-tooling","confidence":0.8,"triage":{"at":"2026-11-03T15:22:27Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"AzuraCast: station users can run OS commands through StereoTool settings","impact":"high","summary":"AzuraCast through 0.23.8 lets a station user with Profile permission inject shell metacharacters into the StereoTool configuration path or license key. Those values are run through /bin/sh when the station restarts, which lets an attacker execute commands inside the container.","audience":"businesses","category":"ai-tooling","nicknames":[],"who_cares":["azuracast","self-hosted","docker"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"Commands run inside the AzuraCast container with the service's privileges.","analyst_note":"Confirm the fixed AzuraCast version and whether StereoTool is enabled by default, using the NVD page and the vendor advisory on github.com.","how_to_check":"- Check the installed AzuraCast version against the range `0.23.8` and earlier.\n- Review who holds Profile permission on each station in the AzuraCast admin panel.\n- Inspect the StereoTool configuration path and license key values for shell metacharacters.","plain_action":"","needs_analyst":true,"not_affected_if":["stereotool-unused","trusted-admins-only"],"who_is_affected":"Teams running AzuraCast for internet radio stations, especially where several users hold station Profile permission and StereoTool is in use. The flaw is reached through station settings and triggered on station restart, so instances without StereoTool configured or with only trusted admins are lower risk. The sources do not state whether a default installation is exposed.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000711,"input_tokens":4174,"output_tokens":588,"severity_before":"high"},"analyst_status":"done","analyst_note":"Confirm the fixed AzuraCast version and whether StereoTool is enabled by default, using the NVD page and the vendor advisory on github.com.","search":"'-121429':13A,16A '-2026':12A,15A '/bin/sh':53B,108C '0.23.8':29B,69C 'ai':19B 'ai-tool':18B 'allow':76C 'attack':61B,89C 'azuracast':1A,21B,27B,67C 'azuracast/azuracast':17A 'command':7A,63B,72C,85C 'compromis':112C 'configur':43B,97C 'contain':66B,70C,114C 'cve':11A,14A 'docker':22B 'execut':62B,83C,106C 'host':25B 'inject':37B,73C,91C 'insid':64B 'key':47B,103C 'let':30B,59B 'licens':46B,102C 'metacharact':39B,93C 'os':6A,84C 'path':44B,98C 'permiss':36B,81C 'profil':35B,80C 'restart':57B,111C 'run':5A,51B 'self':24B 'self-host':23B 'set':10A,88C 'shell':38B,92C 'station':2A,32B,56B,77C,110C 'stereo':95C,100C 'stereotool':9A,26B,42B,87C 'tool':20B,96C,101C 'user':3A,33B,78C 'valu':49B 'via':86C,107C 'vulner':74C","nicknames":[],"mitigations":[],"who_affected":"AzuraCast instances up to and including 0.23.8 (the advisory says the code is also on main) where the StereoTool binary is installed and configured on a station. Any station user or API key with the Profile permission, not only admins, can set the StereoTool config path or license key and run OS commands as the Liquidsoap process user when the station backend starts or restarts. Multi-tenant or reseller hosts are most at risk. Instances without StereoTool installed, or where only trusted admins hold Profile permission, can skip it. StereoTool is an optional install, not on by default.","tier":"B","verified":{"products":{"at":"2026-11-03T15:24:04Z","by":"analyst","doc":"https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-c45c-wrcp-22fx","run_id":1494},"how_to_check":{"at":"2026-11-03T15:24:04Z","by":"analyst","doc":"https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-c45c-wrcp-22fx","run_id":1494},"who_affected":{"at":"2026-11-03T15:24:04Z","by":"analyst","doc":"https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-c45c-wrcp-22fx","run_id":1494}},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":["azuracastazuracast"],"ptokens":["azuracast"],"labels":["aitooling","azuracast","docker","high","selfhosted","stereotool"],"first_public_at":"2026-10-18T15:44:34+00:00","kev":null,"cvss_vector":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-121429","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121429","severity":null,"published_at":"2026-11-03T15:17:33+00:00","modified_at":"2026-11-03T15:17:33+00:00","first_seen_at":"2026-11-03T15:21:59+00:00","fetched_at":"2026-11-03T15:21:59+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-121429:1494","url":null,"severity":null,"published_at":"2026-11-03T15:24:04+00:00","modified_at":"2026-11-03T15:24:04+00:00","first_seen_at":"2026-11-03T15:24:04+00:00","fetched_at":"2026-11-03T15:24:04+00:00","note":"Read maintainer GHSA (via GitHub API) and CHANGELOG. Affected <= 0.23.8; patched_versions null; fix only in unreleased rolling channel, no version number. PoC is in the GHSA text; no exploitation reported. StereoTool must be installed first (not default). Fix field not marked verified because the changelog does not cite the GHSA or a version."}],"documents":[{"id":58383,"url":"https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-c45c-wrcp-22fx","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-18T15:44:34+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":58384,"url":"https://www.vulncheck.com/advisories/azuracast-through-0.23.8-command-injection-via-stereotool-liquidsoap-pipe","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"},{"id":58428,"url":"https://api.github.com/repos/AzuraCast/AzuraCast/security-advisories/GHSA-c45c-wrcp-22fx","title":"GHSA-c45c-wrcp-22fx (AzuraCast, maintainer advisory)","kind":"advisory","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":58429,"url":"https://github.com/AzuraCast/AzuraCast/blob/main/CHANGELOG.md","title":"AzuraCast CHANGELOG (rolling release notes, 0.23.9)","kind":"release","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"fix","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}