{"id":"CVE-2026-54494","title":"Koel is a free, open-source music streaming solution","summary":"Koel is a free, open-source music streaming solution. Prior to 9.7.1, App\\Helpers\\Network::isPublicHost() uses filter_var() with FILTER_FLAG_NO_PRIV_RANGE and FILTER_FLAG_NO_RES_RANGE, which treats NAT64 64:ff9b::/96 and 6to4 2002::/16 w…","severity":"medium","cwe":["CWE-918"],"vendor":"phanan","product":"phanan/koel","affected":["phanan/koel <= 9.7.0"],"patched":["phanan/koel 9.7.1"],"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-54494","references":[{"url":"https://github.com/koel/koel/commit/5f6ce2cefd08f437a269236b677ad971517ccbb6","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/pull/2549","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/releases/tag/v9.7.1","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/security/advisories/GHSA-rjg7-r26h-cfp2","label":"security-advisories@github.com"},{"url":"https://github.com/koel/koel/security/advisories/GHSA-rjg7-r26h-cfp2","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"},{"url":"https://github.com/advisories/GHSA-rjg7-r26h-cfp2"}],"tags":["nvd","ghsa","composer"],"epss":0.00427,"epssPercentile":0.34271,"aliases":["GHSA-rjg7-r26h-cfp2"],"ecosystem":"composer","ingestedAt":"2026-07-15T18:45:16.892Z","slug":"CVE-2026-54494","body":"## Overview\n\nKoel is a free, open-source music streaming solution. Prior to 9.7.1, App\\Helpers\\Network::isPublicHost() uses filter_var() with FILTER_FLAG_NO_PRIV_RANGE and FILTER_FLAG_NO_RES_RANGE, which treats NAT64 64:ff9b::/96 and 6to4 2002::/16 wrappers of private, loopback, or link-local IPv4 addresses as public. An authenticated user can place such an address in a podcast RSS <enclosure url> and reach app/Values/Podcast/EpisodePlayable.php through EpisodePlayable::createForEpisode(), where isSafeUrl() accepts the target and Http::sink($file)->get($url) fetches it. On a host with NAT64 or 6to4 routing, Koel can request internal services or cloud metadata and return the response body to the user. This issue is fixed in version 9.7.1\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-54494)\n\nAffected packages:\n\n- `phanan/koel <= 9.7.0`\n\nPatched in:\n\n- `phanan/koel 9.7.1`\n\nSource: https://github.com/advisories/GHSA-rjg7-r26h-cfp2","depth":"sunlit","depthScore":28,"depthScoreParts":{"impact":27.5,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}