{"id":10721,"date":"2026-09-04T18:51:24","date_gmt":"2026-09-04T10:51:24","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-54493"},"modified":"2026-09-04T18:51:24","modified_gmt":"2026-09-04T10:51:24","slug":"cve-2026-54493","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-54493","title":{"rendered":"CVE-2026-54493 [HIGH] &#8211; Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compati"},"content":{"rendered":"<p>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&#8217;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, &#8216;r&#8217;, 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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;s <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-10721","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/10721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}