Description
Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compatible createPodcastChannel.view route accepts an authenticated user's private URL because app/Http/Requests/Subsonic/CreatePodcastChannelRequest.php does not apply the SafeUrl validation used by the regular podcast API. app/Http/Controllers/Subsonic/CreatePodcastChannelController.php passes the URL to app/Services/Podcast/PodcastService.php, where PodcastService::addPodcast() and createParser() invoke Poddle::fromUrl() during channel creation, causing immediate server-side requests to loopback, Docker bridge, or RFC1918 HTTP destinations. The confirmed impact is blind internal request execution because generic response-body exfiltration was not demonstrated through this route. This issue is fixed in version 9.7.0.
Published: 2026-08-19
Score: 4.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Koel before version 9.7.0 contained a bug in the Subsonic‑compatible createPodcastChannel.view route. The request validator did not enforce safe‑URL filtering, allowing an authenticated user to provide a URL that was subsequently passed without sanitisation to the PodcastService. The service invoked Poddle::fromUrl(), which immediately performed a server‑side HTTP request. Because the response body was not returned to the user, the flaw is blind; an attacker can only observe that a request was made, but cannot capture the payload.

Affected Systems

All Koel installations running any release older than 9.7.0 are affected. The vulnerability is tied specifically to the createPodcastChannel route that accepts an authenticated user’s private URL. The only vendor *product* appearing in the CNA data is Koel.

Risk and Exploitability

The CVSS score is 4.3, indicating a moderate severity. EPSS is not available, and the issue is not listed in the CISA KEV catalog. The attack requires authenticated access and relies on the application making outbound HTTP requests. An attacker can force the server to query arbitrary internal IPs or loopback addresses, which may reveal the existence of other services and enable further reconnaissance, but cannot directly exfiltrate responses through this exploit path.

Generated by OpenCVE AI on August 20, 2026 at 08:02 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Koel to version 9.7.0 or newer, where the unsafe URL validation has been removed.
  • If an upgrade is not immediately possible, restrict or disable the createPodcastChannel API for authenticated users to eliminate the vulnerability surface.
  • Configure network firewalls or isolate the server so that outbound requests cannot reach sensitive internal resources, thereby limiting the impact of any residual blind SSRF.

Generated by OpenCVE AI on August 20, 2026 at 08:02 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-w79m-f3jx-779v Koel: Authenticated Blind SSRF via Subsonic Podcast Channel Creation
History

Thu, 20 Aug 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 20 Aug 2026 01:00:00 +0000

Type Values Removed Values Added
First Time appeared Koel
Koel koel
Vendors & Products Koel
Koel koel

Wed, 19 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
Description Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compatible createPodcastChannel.view route accepts an authenticated user's private URL because app/Http/Requests/Subsonic/CreatePodcastChannelRequest.php does not apply the SafeUrl validation used by the regular podcast API. app/Http/Controllers/Subsonic/CreatePodcastChannelController.php passes the URL to app/Services/Podcast/PodcastService.php, where PodcastService::addPodcast() and createParser() invoke Poddle::fromUrl() during channel creation, causing immediate server-side requests to loopback, Docker bridge, or RFC1918 HTTP destinations. The confirmed impact is blind internal request execution because generic response-body exfiltration was not demonstrated through this route. This issue is fixed in version 9.7.0.
Title Koel: Authenticated Blind SSRF via Subsonic Podcast Channel Creation
Weaknesses CWE-918
References
Metrics cvssV3_1

{'score': 4.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-20T13:43:02.603Z

Reserved: 2026-06-15T18:01:15.510Z

Link: CVE-2026-54492

cve-icon Vulnrichment

Updated: 2026-08-20T13:42:57.984Z

cve-icon NVD

Status : Deferred

Published: 2026-08-19T21:16:57.600

Modified: 2026-09-09T21:15:59.613

Link: CVE-2026-54492

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T08:15:17Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)