Description
Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compatible createInternetRadioStation.view and updateInternetRadioStation.view routes accept an authenticated user's streamUrl without the SafeUrl and HasAudioContentType checks used by the regular radio API. app/Http/Requests/Subsonic/CreateInternetRadioStationRequest.php and app/Http/Requests/Subsonic/UpdateInternetRadioStationRequest.php pass the stored URL through app/Services/RadioService.php to app/Services/Radio/RadioStreamProxy.php, where RadioStreamProxy::openStream() calls fopen($url, 'r', false, $context). Streaming /radio/stream/{id} returns the upstream response body, allowing access to loopback, RFC1918, Docker bridge, metadata, or other internal HTTP services reachable from the Koel server. This issue is fixed in version 9.7.0.
Published: 2026-08-19
Score: 7.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw is a server‑side request forgery in the Subsonic API endpoints used to create and update internet radio stations. Authenticated users can supply a streamUrl that bypasses the normal sanitation checks, causing the Koel server to fetch the URL with PHP's fopen and return the raw upstream response. This allows the attacker to read data from internal network resources such as loopback interfaces, RFC1918 addresses, Docker bridge networks, or any host reachable from the Koel server, potentially exposing sensitive information or enabling further lateral movement.

Affected Systems

Versions of Koel prior to 9.7.0 are impacted. The specific product is the Koel music streaming server (v9.6.x and earlier). Users who authenticate and have access to the Subsonic‑compatible routes for creating or updating internet radio stations can exploit the vulnerability.

Risk and Exploitability

The CVSS score of 7.7 indicates high severity. The EPSS score is not available, so present exploitation probability is uncertain. The vulnerability is not listed in the CISA KEV catalog, implying no known active exploitation yet. However, an authenticated attacker can supply a crafted URL and receive the downstream response, effectively probing internal services or reading internal data. Lack of outbound access controls or firewall restrictions on the Koel server raises the risk of unintended data exposure.

Generated by OpenCVE AI on August 20, 2026 at 08:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Koel to version 9.7.0 or later where the SSRF flaw is fixed.
  • Restrict authenticated users from accessing Subsonic radio station creation and update endpoints, or revoke those permissions entirely.
  • Implement outbound network controls (e.g., firewall rules) that block Koel from accessing non‑public URLs or internal networks.
  • Apply server‑side URL validation to ensure only safe and public URLs are allowed, or disable the feature if it is not required.

Generated by OpenCVE AI on August 20, 2026 at 08:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-6p96-cfg5-4vhp Koel: Authenticated Full-Read SSRF via Subsonic Internet Radio Stations
History

Thu, 20 Aug 2026 01:00:00 +0000

Type Values Removed Values Added
First Time appeared Koel
Koel koel
Vendors & Products Koel
Koel koel

Wed, 19 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
Description Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compatible createInternetRadioStation.view and updateInternetRadioStation.view routes accept an authenticated user's streamUrl without the SafeUrl and HasAudioContentType checks used by the regular radio API. app/Http/Requests/Subsonic/CreateInternetRadioStationRequest.php and app/Http/Requests/Subsonic/UpdateInternetRadioStationRequest.php pass the stored URL through app/Services/RadioService.php to app/Services/Radio/RadioStreamProxy.php, where RadioStreamProxy::openStream() calls fopen($url, 'r', false, $context). Streaming /radio/stream/{id} returns the upstream response body, allowing access to loopback, RFC1918, Docker bridge, metadata, or other internal HTTP services reachable from the Koel server. This issue is fixed in version 9.7.0.
Title Koel: Authenticated Full-Read SSRF via Subsonic Internet Radio Stations
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 7.7, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T20:46:50.890Z

Reserved: 2026-06-15T18:01:15.510Z

Link: CVE-2026-54493

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-19T21:16:57.743

Modified: 2026-08-19T21:16:57.743

Link: CVE-2026-54493

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T08:45:12Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)