Executive brief
Koel is an open-source music streaming platform. A security flaw allows authenticated users to trick the server into making unauthorized requests to internal systems by providing a malicious podcast feed. This could allow an attacker to steal sensitive cloud credentials or access private internal services that are not normally exposed to the internet.
Technical details
A Server-Side Request Forgery (SSRF) vulnerability exists in Koel's podcast processing logic. While the application validates the primary podcast feed URL using a 'SafeUrl' rule, it fails to validate individual episode enclosure URLs extracted from the RSS XML. These unvalidated URLs are stored in the database and subsequently requested by the server using 'Http::sink()->get()' when a user attempts to play an episode. Because the server streams the full HTTP response back to the user, an attacker with low-level account privileges can perform a full-read SSRF. This can be used to exfiltrate sensitive data from internal services, such as AWS/GCP/Azure metadata endpoints. A secondary SSRF vector was also identified in the AI Radio Station tool which bypassed similar validation rules. The issue is patched in version 9.3.5.
Affected products
- Koel Koel < 9.3.5
Timeline
- 2026-05-18: patched: Fix committed and advisory published by maintainer
- 2026-06-12: disclosed: CVE published to NVD