CVE-2026-47260
Received Received - Intake
Full-Read SSRF in Koel Music Streaming Solution

Publication date: 2026-06-12

Last updated on: 2026-06-12

Assigner: GitHub, Inc.

Description
Koel is a free, open-source music streaming solution. Prior to version 9.3.5, Koel validates the podcast feed URL via the SafeUrl rule (DNS resolution + public IP check), but the individual episode <enclosure url="..."> values extracted from the RSS XML are stored directly into the database without any SSRF validation. When a user plays an episode, the server downloads the full HTTP response from the unvalidated enclosure URL via Http::sink()->get() and streams it back to the user, enabling full-read SSRF against internal services. This issue has been patched in version 9.3.5.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-06-12
Last Modified
2026-06-12
Generated
2026-06-13
AI Q&A
2026-06-13
EPSS Evaluated
N/A
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
koel koel to 9.3.5 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-918 The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Attack-Flow Graph
AI Quick Actions
Instant insights powered by AI
Compliance Impact

CVE-2026-47260 enables Server-Side Request Forgery (SSRF) attacks that can lead to exposure of sensitive internal data such as cloud credentials and internal network services. This kind of data exposure can potentially violate data protection regulations like GDPR and HIPAA, which require safeguarding sensitive and personal data from unauthorized access or disclosure.

Since the vulnerability allows attackers to access internal services and exfiltrate sensitive information without user interaction or elevated privileges, organizations using affected versions of Koel may face compliance risks related to confidentiality and data security requirements mandated by these standards.

Remediation by validating URLs to prevent SSRF attacks, as implemented in version 9.3.5, is critical to maintaining compliance with such regulations by reducing the risk of unauthorized data access.

Executive Summary

CVE-2026-47260 is a Server-Side Request Forgery (SSRF) vulnerability in Koel, a music streaming application. The vulnerability occurs because Koel validates the podcast feed URL using the SafeUrl rule, which checks DNS resolution and public IP, but it does not validate the individual episode enclosure URLs extracted from the RSS feed.

When a user plays an episode, the server downloads the full HTTP response from the unvalidated enclosure URL and streams it back to the user. This behavior enables an attacker to perform a full-read SSRF attack against internal services by hosting a malicious RSS feed with enclosure URLs pointing to internal endpoints.

This vulnerability affects Koel versions up to 9.3.4 and was patched in version 9.3.5.

Impact Analysis

This SSRF vulnerability can have serious impacts including unauthorized access to internal services and sensitive data exposure.

  • An attacker can exploit the vulnerability by hosting a malicious RSS feed with enclosure URLs pointing to internal services such as cloud metadata endpoints.
  • When a user plays an episode from this feed, the server fetches data from these internal URLs, potentially exposing sensitive information like cloud credentials.
  • The vulnerability enables internal network reconnaissance and data exfiltration.
  • The attack requires minimal privileges and no user interaction.
Detection Guidance

This vulnerability involves Koel downloading and streaming HTTP responses from unvalidated enclosure URLs in podcast RSS feeds, enabling SSRF attacks. Detection involves monitoring Koel server logs and network traffic for unusual outbound HTTP requests to internal or unexpected IP addresses triggered by podcast episode playback.

Commands to help detect this vulnerability include inspecting network connections and HTTP requests made by the Koel server process, for example:

  • Use netstat or ss to monitor outbound connections from the Koel server: `netstat -tnp | grep <koel_process_pid>` or `ss -tnp | grep <koel_process_pid>`
  • Use tcpdump or Wireshark to capture HTTP traffic from the Koel server to internal IP ranges: `tcpdump -i <interface> host <koel_server_ip> and tcp port 80 or 443`
  • Check Koel application logs for HTTP requests made to internal or private IP addresses during podcast episode playback.

Additionally, reviewing the podcast RSS feeds for enclosure URLs pointing to internal or private IP addresses can help identify potential exploitation attempts.

Mitigation Strategies

The primary mitigation is to upgrade Koel to version 9.3.5 or later, where this SSRF vulnerability has been patched by adding comprehensive URL validation for podcast episode enclosure URLs.

If upgrading immediately is not possible, consider the following steps:

  • Manually validate and sanitize podcast RSS feeds and enclosure URLs before adding them to Koel to ensure they do not point to internal or private IP addresses.
  • Restrict Koel server outbound HTTP requests via firewall rules to block access to internal IP ranges and sensitive endpoints.
  • Monitor and audit Koel server network traffic and logs for suspicious requests to internal services.

The official fix includes implementing a SafeUrl validation rule that rejects URLs pointing to private or unsafe hosts, skipping unsafe enclosure URLs during podcast synchronization, and rejecting unsafe URLs during episode playback.

Chat Assistant
Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-47260. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70
EPSS Chart