{"id":"CVE-2026-54493","title":"Koel is a free, open-source music streaming solution","summary":"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 Has…","severity":"high","cvss":7.7,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","cwe":["CWE-918"],"vendor":"phanan","product":"phanan/koel","affected":["phanan/koel <= 9.6.0"],"patched":["phanan/koel 9.7.0"],"published":"2026-08-19","updated":"2026-09-09","sourceUpdated":"2026-09-09T21:15:59.613","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-54493","references":[{"url":"https://github.com/koel/koel/commit/1331f335342b405e60ffabdd60f1f398508f996f","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/pull/2545","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/releases/tag/v9.7.0","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/security/advisories/GHSA-6p96-cfg5-4vhp","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/security/advisories/GHSA-6p96-cfg5-4vhp","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"},{"url":"https://github.com/advisories/GHSA-6p96-cfg5-4vhp"}],"tags":["nvd","ghsa","composer"],"epss":0.00415,"epssPercentile":0.3304,"aliases":["GHSA-6p96-cfg5-4vhp"],"ecosystem":"composer","ingestedAt":"2026-07-15T17:44:34.550Z","slug":"CVE-2026-54493","body":"## Overview\n\nKoel 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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-54493)\n\nAffected packages:\n\n- `phanan/koel <= 9.6.0`\n\nPatched in:\n\n- `phanan/koel 9.7.0`\n\nSource: https://github.com/advisories/GHSA-6p96-cfg5-4vhp","depth":"twilight","depthScore":42,"depthScoreParts":{"impact":42.4,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}