AzuraCast
CVE-2025-67737
LOW
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover public /api/internal/sftp-event endpoint
-
ExploitObtain valid SFTP username and media path
-
ExecutionPOST forged sftpgo pre-delete event
-
ImpactMedia 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
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).
Primary rating from NVD.
CVSS VectorNVD
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
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
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Affected Products (CPE)NVD
Improper Restriction of Excessive Authentication Attempts in GitHub repository azuracast/azuracast prior to 0.18.3. Rate
Command execution as the Liquidsoap process user is possible in AzuraCast through 0.23.x when an authenticated station u
Cross-site Scripting (XSS) - Stored in GitHub repository azuracast/azuracast prior to 0.18. Rated medium severity (CVSS
Code injection in AzuraCast through 0.23.5 lets an authenticated user holding the RemoteRelays station permission inject
Remote code execution in AzuraCast ≤0.23.8 is reachable by any authenticated station manager due to a serialization grou
Unauthenticated DQL injection in AzuraCast before 0.23.8 allows remote attackers to extract sensitive database informati
Authenticated code injection in AzuraCast 0.23.3 and earlier lets a user holding StationPermissions::Media or StationPer
Unauthenticated media exposure in AzuraCast before 0.23.8 allows remote attackers to download audio files that station o
Authenticated users with only View Station Page permission on AzuraCast before 0.23.8 can retrieve plaintext Icecast/Sho
Server-side request forgery in AzuraCast before 0.23.8 allows an authenticated user with the station-scoped WebHooks per
Missing authorization on AzuraCast's GET /api/station/{station_id}/file/{id}/play endpoint lets any authenticated user -
Server-side request forgery in AzuraCast (Composer package azuracast/azuracast, versions before 0.23.8 per the advisory)
NVD
CVE.org
EPSS
GitHub
Exploit-DB