SEPTEMBER 18, 2026
Live Feed
Back to database
Case File

CVE-2026-76836

HIGH · CVSS 8.8 EPSS 0.33% Public Exploit

Source: NVD + CISA KEV + EPSS · Published 2026-08-24 · Last synced 2026-09-18

CyberRota Analysis

AI-Generated

AzuraCast is vulnerable due to improper permission checks on its API, allowing users with limited profile permissions to modify critical Liquidsoap configuration fields. This flaw can lead to arbitrary command execution on the server when the backend restarts, posing a significant risk of system compromise. Organizations using AzuraCast should prioritize remediation, particularly those with user roles that could exploit this vulnerability to gain unauthorized access to broadcasting capabilities.

Public Exploit Signal

A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.

Note: these links are listed for security research and verification purposes only.

CVE
CVE-2026-76836
Severity
HIGH
CVSS
8.8
EPSS
0.33%

Original NVD Description

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.