GHSA-8q6q-m837-fv64: Koel has SSRF through Authenticated Subsonic podcast feed URLs
Koel before version 9.7.0 contains a Server-Side Request Forgery (SSRF) vulnerability in its Subsonic API podcast feed URL handling. Authenticated users can supply internal or loopback URLs as podcast feed sources, causing the Koel backend to make unauthorized requests to internal network services. Additionally, redirect handling in podcast streaming does not re-validate final URLs after redirects, allowing SSRF via redirect chains. This can expose internal HTTP endpoints to blind SSRF attacks. The vulnerability arises from insufficient validation of feed URLs before server-side fetching and incomplete redirect validation.
AI Analysis
Technical Summary
Koel's Subsonic `createPodcastChannel.view` endpoint accepts user-supplied podcast feed URLs and fetches them server-side before applying safe URL checks, which are only applied later to episode enclosure URLs. This allows an authenticated Subsonic API user to provide loopback or internal URLs, triggering SSRF requests from the Koel backend to internal services. The podcast stream helper method `PodcastService::getStreamableUrl()` validates only the original URL and then follows redirects without re-validating the final redirected URL, accepting potentially unsafe internal URLs. The root cause is that the feed URL is not validated against the safe URL policy before fetching, and redirect targets are not re-validated. This enables blind SSRF against internal HTTP endpoints accessible by the Koel host. The vulnerability affects Koel versions prior to 9.7.0.
Potential Impact
An attacker with any valid Koel account and Subsonic API key can cause the Koel server to make HTTP requests to internal or loopback network addresses. This can be used to perform blind SSRF attacks against internal services reachable from the Koel host. If internal services respond with valid RSS/XML or permissive CORS headers, parts of the response or final URLs may be reflected back to the attacker through normal podcast or streaming functionality. This could lead to information disclosure about internal network services. There is no indication of direct remote code execution or denial of service from this vulnerability.
Mitigation Recommendations
No official patch or fix is currently available. Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Mitigation involves validating the podcast feed URL against the safe URL policy before any server-side fetching occurs. Additionally, all redirect targets must be re-validated before following redirects or automatic redirects should be disabled and handled manually with validation. Regression tests should be added to detect loopback, private IP, and redirect-based SSRF attempts. Until a fix is released, restrict access to trusted users and monitor for suspicious Subsonic API usage.
GHSA-8q6q-m837-fv64: Koel has SSRF through Authenticated Subsonic podcast feed URLs
Description
Koel before version 9.7.0 contains a Server-Side Request Forgery (SSRF) vulnerability in its Subsonic API podcast feed URL handling. Authenticated users can supply internal or loopback URLs as podcast feed sources, causing the Koel backend to make unauthorized requests to internal network services. Additionally, redirect handling in podcast streaming does not re-validate final URLs after redirects, allowing SSRF via redirect chains. This can expose internal HTTP endpoints to blind SSRF attacks. The vulnerability arises from insufficient validation of feed URLs before server-side fetching and incomplete redirect validation.
CVSS v3.1
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Koel's Subsonic `createPodcastChannel.view` endpoint accepts user-supplied podcast feed URLs and fetches them server-side before applying safe URL checks, which are only applied later to episode enclosure URLs. This allows an authenticated Subsonic API user to provide loopback or internal URLs, triggering SSRF requests from the Koel backend to internal services. The podcast stream helper method `PodcastService::getStreamableUrl()` validates only the original URL and then follows redirects without re-validating the final redirected URL, accepting potentially unsafe internal URLs. The root cause is that the feed URL is not validated against the safe URL policy before fetching, and redirect targets are not re-validated. This enables blind SSRF against internal HTTP endpoints accessible by the Koel host. The vulnerability affects Koel versions prior to 9.7.0.
Potential Impact
An attacker with any valid Koel account and Subsonic API key can cause the Koel server to make HTTP requests to internal or loopback network addresses. This can be used to perform blind SSRF attacks against internal services reachable from the Koel host. If internal services respond with valid RSS/XML or permissive CORS headers, parts of the response or final URLs may be reflected back to the attacker through normal podcast or streaming functionality. This could lead to information disclosure about internal network services. There is no indication of direct remote code execution or denial of service from this vulnerability.
Mitigation Recommendations
No official patch or fix is currently available. Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Mitigation involves validating the podcast feed URL against the safe URL policy before any server-side fetching occurs. Additionally, all redirect targets must be re-validated before following redirects or automatic redirects should be disabled and handled manually with validation. Regression tests should be added to detect loopback, private IP, and redirect-based SSRF attempts. Until a fix is released, restrict access to trusted users and monitor for suspicious Subsonic API usage.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-8q6q-m837-fv64
- Osv Schema Version
- 1.4.0
- Aliases
- []
- Ecosystems
- ["Packagist"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 3.1
Threat ID: 6a58b51168715ace43db3580
Added to database: 07/16/2026, 10:40:17 UTC
Last enriched: 07/16/2026, 14:25:27 UTC
Last updated: 07/16/2026, 14:25:27 UTC
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.