AzuraCast through 0.23.8 Liquidsoap Configuration Write via Profile Edit Serialization Group Bypass
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass, Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- No fix listed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-863 and CWE-94.
Summary
AzuraCast exposes the Liquidsoap custom configuration fields through an endpoint that does not require the permission guarding them. The backend_config property in backend/src/Entity/Station.php is annotated with GROUP_GENERAL, and PUT /api/station/{station_id}/profile/edit in backend/src/Controller/Api/Stations/ProfileEditController.php deserializes with that group while requiring only StationPermissions::Profile. AbstractArrayEntity::fromArray() then assigns every public property with no field-level permission check, so custom_config_top, custom_config, custom_config_pre_playlists, custom_config_pre_live, custom_config_pre_fade and custom_config_bottom are writable through it. ConfigWriter::writeCustomConfigurationSection() emits those values verbatim into the generated Liquidsoap .liq script, where the process.run() and process.exec() built-ins execute operating system commands when the backend restarts, which the built-in sync task triggers automatically once needs_restart is set. The dedicated endpoint for the same data, PUT /api/station/{id}/liquidsoap-config, requires StationPermissions::Broadcasting, so a station manager holding only the profile permission reaches configuration that the intended boundary reserves for broadcasting operators.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-76836
- 2026-10-03 Alias added: GHSA-53mh-vf3g-pggg
References
More AzuraCast vulnerabilities
- TI-2023-02372 Improper Restriction of Excessive Authentication Attempts in azuracast/azuracast CVSS 3.1CRITICAL 9.8
- TI-2026-64985 AzuraCast before 0.23.8 DQL Injection via sortOrder CVSS 4.0HIGH 8.7
- TI-2026-64994 AzuraCast before 0.23.6 Code Injection via Remote Relay Password CVSS 4.0HIGH 8.7
- TI-2026-64990 AzuraCast before 0.23.8 Command Injection via Streamer Username CVSS 4.0HIGH 8.7
- TI-2026-30886 AzuraCast: Password Reset Poisoning via Untrusted X-Forwarded-Host Header Leads to Account Takeover and 2FA Bypass CVSS 3.1HIGH 8.8
- TI-2026-30885 AzuraCast: Path Traversal in `currentDirectory` Parameter Enables Remote Code Execution via Media Upload CVSS 3.1HIGH 8.8
Sources
- CVE-2026-76836 · CVE Program
- CVE-2026-76836 · NVD
- FIRST EPSS
- GHSA-53mh-vf3g-pggg · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences