Koel: Authenticated Full-Read SSRF via Subsonic Internet Radio Stations
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| koel | koel | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Koel | Koel |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-6p96-cfg5-4vhp | Koel: Authenticated Full-Read SSRF via Subsonic Internet Radio Stations |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.415% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Koel
Koel koel |
|
| Vendors & Products |
Koel
Koel koel |
| 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
|