CVE-2026-100850: AzuraCast before 0.23.8 SSRF and Local File Read via Remote Playlist
AzuraCast before 0.23.8 contains a server-side request forgery and local file read vulnerability in the AutoDJ remote playlist fetch (backend/src/Radio/AutoDJ/QueueBuilder.php, getMediaFromRemoteUrl()). A user with the station Media permission can create or update a playlist with source=remoteurl and remotetype=playlist whose remoteurl points at a file:// path or an internal/loopback/link-local HTTP endpoint. When AutoDJ builds the queue, the backend passes the user-supplied URL directly to filegetcontents() with no scheme allowlist and no private/loopback/metadata IP policy (PHP allowurlfopen is enabled by default, including in the Docker image). Lines from the fetched resource are parsed as M3U/PLS entries, stored in StationQueue.autodjcustomuri, and returned by GET /api/station/{stationid}/queue to any user with the Broadcasting permission, disclosing host files readable by the web container (for example /etc/passwd or the application .env) and the bodies of non-blind internal HTTP requests. No patched version was available at the time of publication.
Affected Software
Event History
Frequently Asked Questions
What access does an attacker need to exploit this issue?
The attacker needs the station Media permission to create or update a playlist configured with source=remote_url and remote_type=playlist. No user interaction is required.
Are default deployments exposed?
PHP allow_url_fopen is enabled by default, including in the Docker image. This permits the backend fetch operation used by the vulnerable remote playlist feature.
Who can view data retrieved through the vulnerable playlist?
Fetched playlist entries are stored in StationQueue.autodj_custom_uri and returned by the station queue API endpoint. Any user with the Broadcasting permission can retrieve that queue data.