Skip to main content

AzuraCast EUVDEUVD-2026-87838

| CVE-2026-100850 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-09-27 VulnCheck GHSA-r4xq-h58x-54m9
4.8
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with station Media permission
  2. Delivery
    Set playlist remote_url to file:// or internal HTTP
  3. Exploit
    AutoDJ fetches via file_get_contents()
  4. Execution
    Lines parsed and stored in queue
  5. Impact
    Read queue via API to exfiltrate file/response contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated user with the station Media permission to create/update a playlist configured with source=remote_url and remote_type=playlist. The deployment must have PHP allow_url_fopen enabled - this is the default, including the official Docker image, so it is the common case. Retrieving the disclosed data additionally requires an account with the station Broadcasting permission reading GET /api/station/{station_id}/queue (a single user can hold both permissions and complete the chain). Exploitation is limited by needing valid low-privilege authentication and by being confined to files/HTTP endpoints readable by the web container; at publication no patched version existed, so mitigation depends on disabling allow_url_fopen or restricting Media-permission accounts.

Impact

This is a legitimate but moderate-priority issue whose real-world risk is bounded by authentication and impact type rather than reach. The vendor CVSS 4.0 base is 4.8 (AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:L). Two of the vendor's metric choices are questionable: AV:L is inconsistent with the description, which describes exploitation entirely through authenticated web API calls (POST/PUT to create/update a playlist, then GET /api/station/{id}/queue) - that is a network vector (AV:N), not local. More importantly VC:N contradicts the core of the finding, which is disclosure of host files such as /etc/passwd and the application .env (secrets/DB credentials) - that is a real, potentially high confidentiality impact, not none. My independent read scores confidentiality materially higher (see assessed vectors). Exploitation status: no public exploit identified at time of analysis - there is no EPSS score, no CISA KEV listing, and no POC referenced in the two provided advisories (AzuraCast GHSA-rrjx-wrhf-8v47 and VulnCheck). No SSVC decision data was supplied. The mitigating realities: it requires an authenticated account with the station Media permission (PR:L), and at publication no patched version existed, so defenders must rely on configuration hardening. Net: a real but lower-tier priority - an authenticated info-disclosure/SSRF, not a wormable unauthenticated RCE.

Exploit ScenarioDerived

An authenticated user holding the station Media permission creates or edits a playlist with source=remote_url and remote_type=playlist, setting remote_url to file:///etc/passwd, file://.../.env, or an internal/loopback/link-local HTTP endpoint (e.g. cloud metadata). When AutoDJ builds the queue, the backend calls file_get_contents() on that URL with no scheme allowlist and no private-IP policy (allow_url_fopen is on by default, including the Docker image), parses the returned lines as M3U/PLS entries, and stores them in StationQueue.autodj_custom_uri, where any user with Broadcasting permission reads them back via GET /api/station/{id}/queue. No public exploit is known, but the mechanics are fully described in the advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 27, 2026

AzuraCast deployments before 0.23.8 expose a server-side request forgery and local file read flaw in the AutoDJ remote playlist fetcher, letting an authenticated user who holds the station Media permission point a remote_url playlist at a file:// path or an internal/loopback HTTP endpoint and have the backend fetch it with file_get_contents(). The retrieved lines are stored as queue entries and then disclosed through GET /api/station/{station_id}/queue to any user with the Broadcasting permission, exposing host files readable by the web container (such as /etc/passwd or the application .env) and the bodies of non-blind internal HTTP requests. Exploitation is bounded by valid low-privilege authentication and by the privileges of the web container, and no public exploit code was identified at time of analysis; the advisory data states that no patched version was available at publication, so mitigation depends on disabling PHP allow_url_fopen or tightening Media-permission access.

RemediationAI

Upgrade to AzuraCast 0.23.8 or later, the version boundary referenced in the advisory title and the affected-version range, and verify the deployed Docker image tag or package version actually corresponds to that release; note that the provided data also states no patched version was available at the time of publication, so confirm availability against GHSA-rrjx-wrhf-8v47 before relying on the upgrade alone. Where an upgrade cannot be applied immediately, disable PHP allow_url_fopen in the web container's php.ini (this stops the file:// and http:// wrappers at the sink, but will also break legitimate outbound remote-playlist fetching and any other feature relying on URL-aware file functions), and restrict who holds the station Media and Broadcasting permissions so that creating remote_url playlists and reading the queue API are limited to trusted operators - revoking either permission breaks the exploitation chain. Additional compensating controls include running the web container with a read-only filesystem and least-privilege service account so sensitive files such as /etc/passwd and the application .env are not readable, moving credentials out of files reachable by the PHP process, and enforcing egress filtering at the container or host network layer to block loopback, link-local (169.254.0.0/16), and cloud metadata endpoints; each of these reduces impact only, is not a substitute for patching, and egress filtering carries the trade-off of potentially disrupting legitimate internal integrations.

Affected VersionsENISA

AzuraCast 0 <0.23.8

Affected Packages

euvd azuracast fix: 0.23.8

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

The root cause is CWE-918 (Server-Side Request Forgery) combined with an unvalidated scheme and destination policy in backend/src/Radio/AutoDJ/QueueBuilder.php, specifically getMediaFromRemoteUrl(): user-supplied remote_url values are passed directly to PHP's file_get_contents() with no URL scheme allowlist and no blocklist for loopback, link-local, or cloud metadata addresses. Because PHP's allow_url_fopen is enabled by default - including in the official AzuraCast Docker image - file:// and http:// wrappers are both usable, so the same sink supports arbitrary local file reads and SSRF against internal services. Fetched content is interpreted as M3U/PLS playlist lines, persisted into StationQueue.autodj_custom_uri during AutoDJ queue construction, and surfaced through the station queue API, turning a server-side fetch into a stored disclosure channel. The supplied CVSS 4.0 vector rates the issue AV:L/PR:L with low confidentiality scope, whereas the independent assessment scores it CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, reflecting that the interaction occurs over the web API but requires an existing low-privilege account; the affected CPE cpe:2.3:a:azuracast:azuracast:*:*:*:*:*:*:*:* is version-wildcarded, and the advisory context identifies releases before 0.23.8 as the vulnerable boundary.

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 4.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:L
vuln.today AI 6.5 MEDIUM

Exploited over the web API by a low-privilege authenticated user (PR:L, AV:N); primary impact is disclosure of secrets like .env/DB creds (C:H) with no integrity or availability effect.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

1
Patch available
Sep 27, 2026 - 03:16 EUVD

DescriptionCVE.org

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=remote_url and remote_type=playlist whose remote_url 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 file_get_contents() with no scheme allowlist and no private/loopback/metadata IP policy (PHP allow_url_fopen is enabled by default, including in the Docker image). Lines from the fetched resource are parsed as M3U/PLS entries, stored in StationQueue.autodj_custom_uri, and returned by GET /api/station/{station_id}/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.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Low
niche self-hosted web-radio management suite, no broad enterprise footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

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