Skip to main content

AzuraCast CVE-2025-67737

LOW
Missing Authorization (CWE-862)
2025-12-12 security-advisories@github.com
3.7
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Discover public /api/internal/sftp-event endpoint
  2. Exploit
    Obtain valid SFTP username and media path
  3. Execution
    POST forged sftpgo pre-delete event
  4. Impact
    Media DB record deleted, playlist/metadata associations lost

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

Exploitable against default AzuraCast 0.23.1 installations where the /api/internal/sftp-event (and sftp-auth) route was mistakenly mounted on the public HTTP API without the internal-connection check. No authentication is required (PR:N), but exploitation is materially LIMITED by two knowledge prerequisites explicitly stated in the advisory: the attacker must know a valid SFTP username tied to the target station, and must know (or brute-force/guess) the internal filesystem path of the target media file. The endpoint returns no data, so paths/usernames cannot be enumerated via its responses - raising attack complexity (AC:H). Impact is confined to integrity of media database records (lost playlist associations and custom metadata); no files are actually deleted, no confidential data is disclosed, and no availability loss occurs. Patched by restricting the endpoint to the internal HTTP service bound to localhost inside the container.

Impact

Signals point to a LOW real-world priority despite an alarming advisory title. The GHSA headline claims 'Pre-Auth File Deletion & Admin RCE,' but neither the CVE description, the CVSS vector (C:N/I:L/A:N, score 3.7), nor the demonstrated exploit support RCE or destructive file deletion - the actual impact is limited to tricking AzuraCast into deleting a media *database record* (losing playlist associations and custom metadata), which the system later self-heals when it rediscovers the file. This is a notable discrepancy: treat the 'RCE' framing as sensationalized and weight the CVSS/description instead. CVSS correctly shows AV:N/PR:N (network-reachable, no authentication) but AC:H, because the attacker must know a valid SFTP station username AND the internal filesystem path for target media - a meaningful barrier. EPSS is low (0.25%, 15th percentile) and the CVE is NOT in CISA KEV, consistent with the modest integrity-only impact. Publicly available exploit code exists (the advisory includes a working curl PoC), so weaponization is trivial for anyone who clears the knowledge prerequisites, but there is no public exploit identified as being used in active attacks. Net: a genuine missing-authorization bug worth patching, but not an emergency - low integrity impact, no confidentiality/availability loss, and non-trivial attacker prerequisites.

Exploit ScenarioDerived

A remote, unauthenticated attacker who has learned a valid SFTP station username and the internal media path (e.g. /var/azuracast/stations/test/media/test.mp3) sends a crafted POST to the exposed /api/internal/sftp-event endpoint with action 'pre-delete', impersonating the internal sftpgo service. AzuraCast deletes the corresponding media database record, stripping its playlist assignments and custom metadata even though the underlying file remains. A public proof-of-concept curl command is included in the GitHub advisory.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.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 – Oct 14, 2026

Unauthenticated HTTP requests to AzuraCast 0.23.1's internal sftpgo integration endpoints (/api/internal/sftp-auth and /api/internal/sftp-event) can corrupt a station's media database records - specifically deleting the media record's playlist associations and custom metadata - by forging a 'pre-delete' event that the application believes came from sftpgo. Exploitation is constrained by two prerequisites: the attacker must know a valid SFTP username for the target station and must know or guess the internal filesystem path of the media file, and the endpoint returns no data, so paths cannot be enumerated through it. Publicly available exploit code exists (a curl proof-of-concept is published in the GitHub advisory) but there is no evidence of active exploitation (not in CISA KEV), and EPSS is 0.25% at the 15th percentile, reflecting low real-world prioritization. Scanner and advisory titles referencing file deletion or RCE overstate the documented and independently assessed impact, which is limited to low-severity integrity loss.

RemediationAI

Upgrade AzuraCast to version 0.23.2 or later, which is the vendor-released patch and adds the RequireInternalConnection middleware to the sftp-auth and sftp-event routes; the fix is captured in commit 34620dbad93f6cd8e209a4220e3e53c7c5fea844 and described in advisory GHSA-9449-rphm-mjqr. If an immediate upgrade is not possible, block external access to the /api/internal/ path prefix (specifically /api/internal/sftp-auth and /api/internal/sftp-event) at the reverse proxy or ingress in front of AzuraCast - returning 403 or 404 - while leaving all other routes untouched; this is safe because those endpoints are consumed only by the container-internal sftpgo service over localhost and are not needed by legitimate external clients, so the trade-off is essentially nil, though you must not also block the internal :6010 listener or SFTP event handling will silently break. Restricting AzuraCast's web interface to trusted networks or behind a VPN is a broader compensating control that reduces the attack surface but reduces accessibility of the public player and administration UI. Note that any station media records already damaged before patching will not be restored by the upgrade - playlist associations and custom metadata lost to a forged pre-delete event must be recreated manually from backups.

Affected Packages

composer azuracast/azuracast fix: 0.23.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in composer

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

AzuraCast ships an internal HTTP API used by the bundled sftpgo SFTP daemon to notify the application of authentication and filesystem events. In version 0.23.1 the routes api:internal:sftp-auth and api:internal:sftp-event, defined in backend/config/routes/api_internal.php, were mounted without any authorization check, so they were reachable over the public-facing HTTP API rather than only from the internal service listening on localhost:6010 inside the Docker container. This is a classic CWE-862 (Missing Authorization) flaw: the route exists and functions, but no control verifies the caller is the trusted internal component. The upstream fix adds a new App\Middleware\RequireInternalConnection middleware to both routes, which reads the IS_INTERNAL server parameter (set only by the internal listener) and throws PermissionDeniedException if the request did not originate from the internal connection. Because the internal HTTP service binds to localhost inside the container, external callers cannot satisfy the check after patching. The trust boundary here is between the container-internal service mesh and the publicly exposed HTTP endpoint - the same hostname serves both, which is why the route was accidentally exposed.

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

NVD PRIMARY 3.7 LOW
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
vuln.today AI 3.7 LOW

Network-reachable unauthenticated endpoint (AV:N/PR:N) but requires knowing a valid SFTP username and exact media path (AC:H); only DB-record integrity is affected (I:L, C:N, A:N).

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

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

DescriptionNVD

AzuraCast is a self-hosted, all-in-one web radio management suite. Versions 0.23.1 mistakenly include an API endpoint that is intended for internal use by the SFTP software sftpgo, exposing it to the public-facing HTTP API for AzuraCast installations. A user with specific internal knowledge of a station's operations can craft a custom HTTP request that would affect the contents of a station's database, without revealing any internal information about the station. In order to carry out an attack, a malicious user would need to know a valid SFTP station username and the coordinating internal filesystem structure. This issue is fixed in version 0.23.2.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
self-hosted niche web-radio suite, hobbyist/small-broadcaster footprint
Exploit
POC
Public exploit code exists
Data Quality
4 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 LOW
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +18
PoC: +20
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.

Affected Products (CPE)NVD

cpe:2.3:a:azuracast:azuracast:*:*:*:*:*:*:*:*
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-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-2026-100851 HIGH
7.2 Sep 27

Authenticated users with only View Station Page permission on AzuraCast before 0.23.8 can retrieve plaintext Icecast/Sho

CVE-2026-100849 HIGH
7.1 Sep 27

Server-side request forgery in AzuraCast before 0.23.8 allows an authenticated user with the station-scoped WebHooks per

CVE-2026-100855 HIGH
7.1 Sep 27

Missing authorization on AzuraCast's GET /api/station/{station_id}/file/{id}/play endpoint lets any authenticated user -

CVE-2026-100848 HIGH
7.1 Sep 27

Server-side request forgery in AzuraCast (Composer package azuracast/azuracast, versions before 0.23.8 per the advisory)

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