Skip to main content

AzuraCast CVE-2026-121430

| EUVDEUVD-2026-115852 MEDIUM
Missing Authorization (CWE-862)
2026-11-03 VulnCheck GHSA-5p6h-gpj3-x86x
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with any low-privilege account
  2. Exploit
    Enumerate target station_id and media_id
  3. Execution
    POST attacker JSON to unguarded waveform route
  4. Impact
    Overwrite cached waveform, corrupting victim station Visual Cue Editor data

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 a valid AzuraCast login of the lowest privilege tier - any authenticated account with zero station assignment suffices (PR:L); no admin or station grant is needed. The attacker also needs network reach to the API and a target station_id plus a media_id to address (enumerable/guessable). The specific affected feature is the station-scoped waveform endpoints GET/POST /api/station/{station_id}/waveform/{media_id} (GetWaveformAction / PostCacheWaveformAction), which - unlike sibling /quota, /art, and /files/* routes - carry no Permissions(StationPermissions) middleware. LIMITING FACTORS: exploitation requires authentication (not anonymous); impact is confined to per-media cached waveform JSON (disclosure and overwrite), not the media files, credentials, arbitrary filesystem paths, or availability; affects installations on the rolling main branch / before the fixed release. No user interaction and no non-default configuration are required - the gap is present in the default compiled route table.

Impact

This is a genuine but moderate-priority access-control flaw, not a critical emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) scoring 5.3 Medium is consistent with the mechanism: network-reachable, low complexity, no user interaction, but requiring PR:L - any authenticated account. Impact is deliberately bounded (VC:L/VI:L/VA:N): cross-station disclosure and tampering of cached waveform JSON only, not media files, credentials, or arbitrary paths. There is NO KEV listing and NO EPSS score in the provided data, so active-exploitation and statistical-likelihood signals are simply absent rather than negative. The vuln.today decision label is 'this_month' (not act_now/emergency), aligning with a medium severity. A public PoC exists in the GHSA advisory but it dynamically proves the missing-middleware gap via route-table reflection - it is not verified as a full working HTTP exploit against a live multi-user instance. The authentication requirement (PR:L) and the narrow, non-destructive impact are the main factors keeping real-world risk below the raw network-vector reading. One data conflict to flag: the CVE description says 'before 0.24.0' (implying 0.24.0 fixes it), while the package evidence states 'fixed in: not yet patched' and the advisory confirms against rolling main as of 2026-09-04 with no version-gated history - verify the actual fixed version with the vendor.

Exploit ScenarioDerived

An attacker registers or obtains any low-privilege AzuraCast account with no station assignment, then sends an authenticated POST to /api/station/{station_id}/waveform/{media_id} targeting a station they have no access to. Because the route carries no Permissions middleware, the attacker-supplied JSON body overwrites that station's cached waveform file, corrupting the Visual Cue Editor data its legitimate operators will next edit; the GET counterpart similarly leaks another station's cached waveform. A public PoC in the GHSA advisory demonstrates the missing-authorization mechanism via live route-table introspection, though it is not a verified end-to-end HTTP exploit.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

AzuraCast's station waveform endpoints (GET and POST /api/station/{station_id}/waveform/{media_id}) are missing the Permissions middleware that every sibling station-scoped media route carries, so any authenticated user - even one with no station assignment at all - can read another station's cached waveform JSON and overwrite it with arbitrary content. Successful abuse gives limited cross-station data disclosure and limited tampering with the Visual Cue Editor waveform data, not access to media files, credentials, or arbitrary filesystem paths (CVSS 3.1: AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N; CVSS 4.0 base 5.3). Authentication of the lowest privilege tier is required and the attacker must reach the API with a target station_id and media_id; VulnCheck and the upstream advisory provide a PoC reference that boots the real application and introspects its compiled route table to prove the missing middleware - it is not verified as working end-to-end exploit code, and there is no KEV listing or active-exploitation reporting.

RemediationAI

Apply the vendor fix by adding ->add(new Middleware\Permissions(StationPermissions::Media, true)) to both the api:stations:media:waveform (GetWaveformAction) and api:stations:media:waveform-cache (PostCacheWaveformAction) route registrations in backend/config/routes/api_station.php, matching the gating already used on sibling /art, /quota and /files/* routes, and upgrade to the release identified in the vendor advisory - the CVE record names 0.24.0 as the fixed version, but the GHSA package metadata supplied here reports the main branch as not yet patched, so verify the exact patched tag at https://github.com/AzuraCast/AzuraCast/security/advisories/GHSA-q3x9-qgv6-hgq3 before relying on a version number. Until a build containing the middleware is deployed, the effective compensating control is to shrink the authenticated population, because the flaw needs only the lowest privilege tier with zero station assignment: audit and remove API accounts that do not need access (side effect: legitimate read-only or unassigned users lose API access), or front the /api/station/*/waveform/* endpoints with a reverse-proxy or WAF rule restricting them to known management IPs (side effect: breaks waveform loading for remote clients and the Visual Cue Editor unless those clients are proxied through an allowed address). Also add a regression test asserting every route in the RequireLogin-gated station group that touches a StationMedia or station-owned resource carries a Permissions middleware, since this is the second reported occurrence of this exact class of gap in the codebase.

Affected VersionsENISA

AzuraCast 0 <0.24.0

Affected Packages

euvd azuracast fix: 0.24.0

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

AzuraCast is a self-hosted PHP radio-streaming and automation platform distributed as the Composer/Packagist package azuracast/azuracast and built on the Slim framework. Routes are declared in backend/config/routes/api_station.php inside an "Authenticated Functions" group that is gated only by Middleware\RequireLogin; per-station authorization is normally applied as route-level Middleware\Permissions(StationPermissions::X, true), as seen on the sibling /quota, /art, /files/*, /mounts/*, /reports/* and /webhooks/* routes. The {station_id} argument is resolved by Middleware\GetStation, which performs only a repository lookup (findByIdentifier) and attaches the Station record to the request without any ACL evaluation, and neither affected controller performs an inline check. GetWaveformAction calls mediaRepo->requireByUniqueId($mediaId, $station), computes the waveform if no cache file exists, and streams waveforms/{unique_id}.json from the station's filesystem; PostCacheWaveformAction takes the fully attacker-controlled parsed request body via Types::arrayOrNull() and passes it to StationMediaRepository::saveWaveformData(), which re-encodes (but does not otherwise validate) it into waveforms/{unique_id}.json on the victim station's filesystem. The root cause class is CWE-862 (Missing Authorization): a specific omission in route registration rather than an intentionally public feature, since the same StationMedia resource is permission-gated everywhere else. The trigger condition is documented - an authenticated request to either route for a station the caller has no rights to - and the advisory demonstrates it dynamically by booting the real app and reflecting on the live compiled Slim route middleware stack; a full HTTP walkthrough against MySQL/Redis with two low-privilege users was explicitly not performed.

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

Network-reachable low-complexity route needing only any logged-in account (PR:L), no interaction; limited cross-station waveform disclosure (C:L) and cache overwrite (I:L), no availability impact.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

Lifecycle Timeline

1
Patch available
Nov 03, 2026 - 16:17 EUVD

DescriptionCVE.org

AzuraCast before 0.24.0 contains a missing authorization vulnerability in the GET and POST /api/station/{station_id}/waveform/{media_id} routes, which lack Permissions middleware. Any authenticated user without station assignment can read another station's cached waveform JSON and overwrite it with attacker-supplied data, corrupting Visual Cue Editor data.

Threat Intelligence Overview

Prevalence
Low
self-hosted niche web-radio management app, limited enterprise footprint
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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 N/A
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
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2023-2531 CRITICAL POC
9.8 May 05

Improper Restriction of Excessive Authentication Attempts in GitHub repository azuracast/azuracast prior to 0.18.3. Rate

CVE-2026-100852 HIGH
8.7 Sep 27

Command execution as the Liquidsoap process user is possible in AzuraCast through 0.23.x when an authenticated station u

CVE-2023-2191 MEDIUM POC
4.8 Apr 20

Cross-site Scripting (XSS) - Stored in GitHub repository azuracast/azuracast prior to 0.18. Rated medium severity (CVSS

CVE-2026-100856 HIGH
8.7 Sep 27

Code injection in AzuraCast through 0.23.5 lets an authenticated user holding the RemoteRelays station permission inject

CVE-2026-76836 HIGH
8.7 Aug 24

Remote code execution in AzuraCast ≤0.23.8 is reachable by any authenticated station manager due to a serialization grou

CVE-2026-100847 HIGH
8.7 Sep 27

Unauthenticated DQL injection in AzuraCast before 0.23.8 allows remote attackers to extract sensitive database informati

CVE-2026-121429 HIGH
8.7 Nov 03

Authenticated command injection in AzuraCast through 0.23.8 lets any station user holding the standard Profile permissio

CVE-2026-121428 HIGH
8.7 Nov 03

Authenticated station managers in AzuraCast through 0.23.8 can turn a station profile edit into root-level command execu

CVE-2026-121427 HIGH
8.7 Nov 03

Configuration injection in AzuraCast through 0.23.8 lets an authenticated station user who holds only the 'Manage statio

CVE-2026-100857 HIGH
8.6 Sep 27

Authenticated code injection in AzuraCast 0.23.3 and earlier lets a user holding StationPermissions::Media or StationPer

CVE-2026-100853 HIGH
8.2 Sep 27

Unauthenticated media exposure in AzuraCast before 0.23.8 allows remote attackers to download audio files that station o

CVE-2025-67737 LOW POC
3.7 Dec 12

Unauthenticated HTTP requests to AzuraCast 0.23.1's internal sftpgo integration endpoints (/api/internal/sftp-auth and /

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