Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-priv user on one station
-
DeliveryCall GET /file/{id}/play for another station
-
ExploitEnumerate sequential integer media IDs
-
ExecutionBypass missing permission check
-
ImpactExfiltrate full cross-station media library
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires (1) an authenticated AzuraCast account - any valid session or API key, even one scoped to a single station (PR:L); and (2) a multi-tenant deployment where more than one station exists and cross-station isolation matters, since the attacker exfiltrates media from stations they lack permissions on. Exploitation is limited to AzuraCast versions <= 0.23.5 (fixed in 0.23.6). No user interaction is needed and IDs are trivially enumerable because the /file/{id}/play endpoint accepts sequential auto-increment integers. On single-operator instances the flaw has no practical impact since the attacker would already control all stations. |
| Impact | This is a genuine but moderate-severity broken-access-control flaw (CWE-862), not an inflated high-CVSS issue. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N, 7.1) is internally consistent and I largely agree: network-reachable, low attack complexity, requires an authenticated low-privilege account (PR:L), and confidentiality-only impact (VC:H, no integrity or availability effect). The GHSA advisory contains a working PoC (bash exploitation steps), so publicly available exploit code exists - this raises practical risk beyond a paper vulnerability. However, no EPSS score, no CISA KEV listing, and no SSVC decision data were provided, so there is no evidence of active exploitation; the PoC signal and the active-exploitation signal must not be conflated. The realistic risk is highest in multi-tenant AzuraCast deployments where distinct operators share one instance and expect per-station isolation; in single-tenant/single-operator installs the impact is negligible because the attacker would already own all stations. Net: real, verifiable, worth patching for multi-tenant hosts, but low-to-medium priority given confidentiality-only scope, low-privilege authentication requirement, and a niche product footprint. |
| Exploit ScenarioDerived | In a multi-tenant AzuraCast instance, an attacker holds a valid account with permissions on Station A only. Because GET /api/station/{station_id}/file/{id}/play lacks the station-level permission middleware, they script sequential integer file IDs against Station B and download its entire media library despite having no rights on it. A working PoC demonstrating this is published in the GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 27, 2026
Missing authorization on AzuraCast's GET /api/station/{station_id}/file/{id}/play endpoint lets any authenticated user - including one whose API key or session is scoped to a single station - download the complete media library of every other station on a multi-tenant installation running 0.23.5 or earlier. Because the endpoint accepts sequential auto-increment media IDs, an attacker can trivially enumerate and exfiltrate files from stations they have no permissions on, with no user interaction and impact limited to confidentiality (vendor CVSS 4.0 base 7.1; assessed as CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N). The vendor advisory (GHSA-qff7-q5fm-8p76) ships step-by-step proof-of-concept reproduction instructions; there is no indication of confirmed active exploitation (CISA KEV) at time of analysis.
RemediationAI
Upgrade to AzuraCast 0.23.6 or later, which restores the missing permission check on the /play route; the fixing change is commit ba92dc3f0ea15a9c0ba0f4557d99a9a26004108f and the full guidance is in the vendor advisory at https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-qff7-q5fm-8p76, so that is the vendor-released patch (exact fixed version 0.23.6) and it should be applied to every multi-tenant instance. If an immediate upgrade is not possible, compensating controls must be applied with their trade-offs understood: revoke or rotate API keys and sessions belonging to users with access to only one station, since those credentials are the exact prerequisite for exploitation - this temporarily disrupts any external tooling or integrations using those keys. Restrict network access to the /api/station/*/file/*/play path at the reverse proxy or WAF, returning 403 for all callers, accepting that legitimate in-station playback or download workflows that use this endpoint will break. Alternatively, temporarily place the instance behind authentication at the network layer (VPN or IP allowlist) so only trusted operators can reach the API, at the cost of public streaming or listener-facing access. Audit logs for repeated sequential requests to /api/station/{station_id}/file/{id}/play from a single credential and treat any such pattern as evidence of cross-station data exfiltration. Do not rely on per-station user scoping as a mitigation, because the missing check bypasses it entirely; note also that no vendor-released patch data contradicts the 0.23.6 fix, and no evidence of confirmed active exploitation (CISA KEV) exists at time of analysis.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in composer, 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 self-hosted PHP web radio management platform built on the Slim micro-framework, with API routes declared in backend/config/routes/api_station.php. The affected endpoint belongs to the /file/{id} route group, where three sibling handlers (GET /file/{id}, PUT /file/{id}, DELETE /file/{id}) each attach a Middleware\Permissions guard bound to StationPermissions::Media or StationPermissions::DeleteMedia, but the GET /file/{id}/play handler (Controller\Api\Stations\Files\PlayAction) was declared without that middleware - a classic CWE-862 Missing Authorization case. The middleware chain that does run on /play is GetStation → RequireStation → RequireLogin → StationSupportsFeature(Media) → PlayAction; RequireLogin only proves a valid session or API key exists and never evaluates station-level permission grants. PlayAction calls mediaRepo->requireForStation(id, station), which confirms the media record belongs to the requested station but performs no authorization check, and StationMediaRepository::findForStation accepts both auto-increment integer IDs and unique string IDs, making sequential-ID enumeration straightforward. The flaw is a repeat of a regression already addressed for the adjacent /files group in commit 7fbc7dd (2026-02-26); the /play route was overlooked in that fix, which explains why the issue affects only releases up to and including 0.23.5 and is resolved in 0.23.6. It is distributed as the Composer package composer/azuracast/azuracast, and the affected-version CPE provided (cpe:2.3:a:azuracast:azuracast:*:*:*:*:*:*:*:*) is unversioned, so the Composer constraint (<= 0.23.5) is the authoritative version 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network endpoint, low complexity, needs a low-privilege authenticated account (PR:L); confidentiality-only exfiltration of media so C:H, I:N, A:N, scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
AzuraCast before 0.23.6 contains a missing permission check vulnerability in the GET /api/station/{station_id}/file/{id}/play endpoint that allows authenticated users to download media files from any station. Attackers can enumerate media files using sequential IDs and exfiltrate the complete media library of stations they lack permissions for.
Technical POC Analysis
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
Organizations running AzuraCast 0.23.5 or earlier for multi-tenant streaming face cross-tenant disclosure of their entire media libraries, because a flaw in a single API endpoint defeats the per-station permission boundaries the platform depends on. Any broadcaster, department, or customer sharing one instance can reach content belonging to its peers, making this a confidentiality, licensing, and customer-trust problem rather than an availability event. No confirmed actively exploited (CISA KEV) activity has been reported, but publicly available exploit code exists and no vendor-released patch is identified at time of analysis.
Restrict or block the /api/station/{station_id}/file/{id}/play endpoint at the reverse proxy or WAF; enforce strict per-station API key scoping and eliminate shared or over-privileged credentials; segment multi-tenant deployments or temporarily disable cross-station sharing features; enable and monitor access logging with alerting on sequential media-ID requests and abnormal download volumes; rotate API keys and session tokens for narrowed-scope accounts; treat hosted media libraries as potentially exposed until a vendor fix is applied.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Related Vulnerabilities in AzuraCast SSRF, Injection, and Access Control Flaws
View all 11Improper Restriction of Excessive Authentication Attempts in GitHub repository azuracast/azuracast prior to 0.18.3. Rate
Cross-site Scripting (XSS) - Stored in GitHub repository azuracast/azuracast prior to 0.18. Rated medium severity (CVSS
Remote code execution in AzuraCast ≤0.23.8 is reachable by any authenticated station manager due to a serialization grou
Unauthenticated HTTP requests to AzuraCast 0.23.1's internal sftpgo integration endpoints (/api/internal/sftp-auth and /
EUVD-2026-87820
GHSA-rwfr-jcqg-x7jc
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB