Skip to main content

AzuraCast CVE-2026-121427

| EUVDEUVD-2026-115959 HIGH
External Control of System or Configuration Setting (CWE-15)
2026-11-03 VulnCheck GHSA-jv23-j2cr-92x9
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as Profile-only station user
  2. Delivery
    PUT /station/{id}/profile/edit with malicious frontend_config.custom_config
  3. Exploit
    JSON written verbatim as key=value lines into sc_serv.conf on restart
  4. Execution
    Override adminpassword/password/portbase and inject directives
  5. Impact
    Hijack station Shoutcast frontend

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A02:2025 - Security Misconfiguration
ASVS 5.0
V13 - Configuration Configuration hardening
Exploitation Conditions

Requires an authenticated AzuraCast account that holds the 'Manage station profile' permission but lacks 'Manage station broadcasting', operating on a station configured with the shoutcast2 frontend type (plain 'shoutcast' 500s by design; Icecast/other frontends are not the sink). The injected frontend_config.custom_config only materializes into the live sc_serv.conf when the station/frontend is restarted - in the PoC this restart is triggered by an admin. Limiting factors: a valid low-privilege station account is mandatory, the target station must use the Shoutcast frontend, and a frontend restart must occur; observed impact is confined to sc_serv.conf key=value semantics (adminpassword/password/portbase override and arbitrary-directive injection), with actual Shoutcast daemon execution unverified because the binary is absent from stock images.

Impact

The CVSS 4.0 base score is 8.7 (High) with the supplied vector AV:N/AC:L/AT:N/PR:N/UI:N/VC:H. However, that vector is internally inconsistent with the authoritative evidence: the GHSA advisory and the description both state the flaw requires an authenticated user who holds the 'Manage station profile' permission, which means privileges are genuinely required (PR:L), not PR:N. This single discrepancy materially changes the real-world picture - this is not an anonymous internet-wide attack but an authenticated authorization-boundary break (CWE-862 missing authorization / CWE-15 external control of config). There is no CISA KEV listing and no EPSS score was provided, so there is no signal of active or probabilistically-likely mass exploitation. A complete, runnable proof-of-concept exploit script is published directly in the vendor GHSA advisory against the exact verified commit (ebf75a2), so exploit knowledge is fully public. The vuln.today decision label is 'this_week' (not act_now/emergency). Net assessment: a credible, well-documented privilege-escalation / station-isolation vulnerability with public exploit code, but gated behind holding a valid low-privilege station account - a real priority for multi-tenant AzuraCast operators rather than a wormable, unauthenticated internet threat. The vendor reports it is not yet patched, which raises urgency for exposed multi-user deployments.

Exploit ScenarioDerived

An attacker holding a low-privilege AzuraCast account with only 'Manage station profile' (and not 'Manage station broadcasting') on a Shoutcast-fronted station sends a crafted PUT to /station/{id}/profile/edit embedding malicious JSON in frontend_config.custom_config. Because that field is never stripped for non-Broadcasting users, on the next frontend restart the JSON is written verbatim into sc_serv.conf, letting the attacker override adminpassword/password/portbase and inject arbitrary directives via newline-containing keys to hijack the station's Shoutcast frontend. A complete runnable PoC script is published in the vendor GHSA advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 03, 2026

Configuration injection in AzuraCast through 0.23.8 lets an authenticated station user who holds only the 'Manage station profile' permission rewrite the live Shoutcast sc_serv.conf of a shoutcast2-type station, overriding adminpassword, password and portbase or appending arbitrary directives via newline-bearing keys. The root cause is an authorization gap: PUT /station/{id}/profile/edit strips privileged Liquidsoap backend custom sections for users without 'Manage station broadcasting' but leaves frontend_config.custom_config writable, and that stored JSON is written verbatim as key=value lines into the config file. The injection only materializes when the station or frontend is restarted (in the published proof-of-concept the restart is performed by an admin), and because the Shoutcast binary is absent from stock images, actual daemon execution of the hijacked configuration was not observed. No CISA KEV entry or in-the-wild exploitation is reported, though the upstream GitHub advisory publishes a detailed proof-of-concept and an automated verification script.

RemediationAI

No vendor-released patch identified at time of analysis: the advisory lists the issue as 'not yet patched', covering 0.23.8 and rolling main through ebf75a267fd2113c1c1b881c04a58babdf4356d3, so track https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-2wcv-vv3g-g86q for the fixed release. Until then, the most direct control is to remove 'Manage station profile' from any role that should not reach the Shoutcast configuration - the trade-off is that affected users lose all legitimate profile editing, so scope the change to roles that do not also need 'Manage station broadcasting'. Where the permission cannot be withdrawn, clear frontend_config.custom_config on shoutcast2 stations and re-check it after profile edits, accepting that this must be repeated manually since the API still accepts writes. Restricting station creation and frontend-type selection to trusted administrators reduces the number of shoutcast2 sinks available. Operators should also treat the missing restart step as a partial, not complete, barrier: the payload lands in the database immediately and only needs one subsequent station or frontend restart, so audit /var/azuracast/stations/<short_name>/config/sc_serv.conf for unexpected adminpassword, password or portbase values and for directive lines not generated by the panel, and rotate Shoutcast source and admin passwords on any station a profile-only user could edit. Because the Shoutcast binary is not present in stock images, daemon-level exploitation was not demonstrated, but limiting conclusions to that would leave the persisted configuration tampering unaddressed.

Affected VersionsENISA

AzuraCast 0 ≤0.23.8

Affected Packages

euvd azuracast no fix

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

AzuraCast is a PHP/Symfony self-hosted radio station manager. Station frontend settings are held in the StationFrontendConfiguration entity, where custom_config (backend/src/Entity/StationFrontendConfiguration.php:16) is exposed in GROUP_GENERAL, i.e. the Profile-editable serialization group. The ProfileEditController (backend/src/Controller/Api/Stations/ProfileEditController.php:80-84) removes privileged StationBackendConfiguration custom sections when the caller lacks StationPermissions::Broadcasting, but never unsets frontend_config.custom_config, so the field remains writable with only the Profile permission. The Shoutcast writer (backend/src/Radio/Frontend/Shoutcast.php:170-173) merges the decoded custom configuration over the generated base - which already contains 'password' (source_pw), 'adminpassword' (admin_pw) and 'portbase' (port) at lines 143-151 - and then emits each pair as key=value with only newline characters stripped from the value, not the key (lines 201-204). Because AbstractFrontend::processCustomConfig (lines 119-120) json_decodes the attacker string, newlines and '=' survive inside keys: a key such as "evil\ninjected_directive" produces two output lines, and a key containing '=' shifts the emitted pair. This is CWE-15 (External Control of System or Configuration Setting) combined with CWE-862 (Missing Authorization); the file is consumed at start time through getConfigurationPath() and getCommand(). Impact is bounded by sc_serv.conf key=value semantics - no shell-exec directive is claimed - and by the requirement that the target station uses the shoutcast2 frontend type.

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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 7.6 HIGH

Requires an authenticated low-privilege profile user (PR:L), remotely over the API (AV:N/AC:L); verbatim config override yields high integrity impact, with limited confidentiality (credential control) and availability (port change) impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

AzuraCast through 0.23.8 fails to remove frontend_config.custom_config in PUT /station/{id}/profile/edit for users lacking the Manage station broadcasting permission, and the stored JSON is written verbatim as key=value lines into the Shoutcast sc_serv.conf file. An authenticated user with only the Manage station profile permission can override adminpassword, password, and portbase, or inject arbitrary directives via newlines in keys, hijacking the station's Shoutcast frontend.

Technical POC Analysis

CWE-15 (External Control of System or Configuration Setting), with the underlying defect also matching CWE-862 (Missing Authorization).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

AzuraCast versions up to 0.23.8 contain a high-severity configuration injection flaw that enables station-level users with limited permissions to alter critical Shoutcast server settings, potentially disrupting broadcast operations or enabling unauthorized access. Leadership should prioritize remediation because this affects the integrity and availability of streaming services, though exploitation requires authentication and a restart, and no active exploitation has been observed.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting the 'Manage station profile' permission to trusted administrators, auditing and removing unnecessary custom frontend_config entries, and closely monitoring Shoutcast configuration files for unauthorized changes.

Threat Intelligence Overview

Prevalence
Low
niche self-hosted web-radio management software, limited enterprise footprint
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Medium

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

CVE-2023-2531 CRITICAL POC
9.8 May 05

Improper Restriction of Excessive Authentication Attempts in GitHub repository azuracast/azuracast prior to 0.18.3. Rate

CVE-2026-100852 HIGH
8.7 Sep 27

Command execution as the Liquidsoap process user is possible in AzuraCast through 0.23.x when an authenticated station u

CVE-2023-2191 MEDIUM POC
4.8 Apr 20

Cross-site Scripting (XSS) - Stored in GitHub repository azuracast/azuracast prior to 0.18. Rated medium severity (CVSS

CVE-2026-100856 HIGH
8.7 Sep 27

Code injection in AzuraCast through 0.23.5 lets an authenticated user holding the RemoteRelays station permission inject

CVE-2026-76836 HIGH
8.7 Aug 24

Remote code execution in AzuraCast ≤0.23.8 is reachable by any authenticated station manager due to a serialization grou

CVE-2026-100847 HIGH
8.7 Sep 27

Unauthenticated DQL injection in AzuraCast before 0.23.8 allows remote attackers to extract sensitive database informati

CVE-2026-121429 HIGH
8.7 Nov 03

Authenticated command injection in AzuraCast through 0.23.8 lets any station user holding the standard Profile permissio

CVE-2026-121428 HIGH
8.7 Nov 03

Authenticated station managers in AzuraCast through 0.23.8 can turn a station profile edit into root-level command execu

CVE-2026-100857 HIGH
8.6 Sep 27

Authenticated code injection in AzuraCast 0.23.3 and earlier lets a user holding StationPermissions::Media or StationPer

CVE-2026-100853 HIGH
8.2 Sep 27

Unauthenticated media exposure in AzuraCast before 0.23.8 allows remote attackers to download audio files that station o

CVE-2025-67737 LOW POC
3.7 Dec 12

Unauthenticated HTTP requests to AzuraCast 0.23.1's internal sftpgo integration endpoints (/api/internal/sftp-auth and /

CVE-2026-100851 HIGH
7.2 Sep 27

Authenticated users with only View Station Page permission on AzuraCast before 0.23.8 can retrieve plaintext Icecast/Sho

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy