---
id: CVE-2026-54493
title: 'Koel is a free, open-source music streaming solution'
summary: >-
  Koel is a free, open-source music streaming solution. Prior to 9.7.0, the
  Subsonic-compatible createInternetRadioStation.view and
  updateInternetRadioStation.view routes accept an authenticated user's
  streamUrl without the SafeUrl and Has…
severity: high
cvss: 7.7
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N'
cwe:
  - CWE-918
vendor: phanan
product: phanan/koel
affected:
  - phanan/koel <= 9.6.0
patched:
  - phanan/koel 9.7.0
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-54493'
references:
  - url: >-
      https://github.com/koel/koel/commit/1331f335342b405e60ffabdd60f1f398508f996f
    label: security-advisories@github.com
  - url: 'https://github.com/koel/koel/pull/2545'
    label: security-advisories@github.com
  - url: 'https://github.com/koel/koel/releases/tag/v9.7.0'
    label: security-advisories@github.com
  - url: 'https://github.com/koel/koel/security/advisories/GHSA-6p96-cfg5-4vhp'
    label: security-advisories@github.com
  - url: 'https://github.com/koel/koel/security/advisories/GHSA-6p96-cfg5-4vhp'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://github.com/advisories/GHSA-6p96-cfg5-4vhp'
tags:
  - nvd
  - ghsa
  - composer
epss: 0.00415
epssPercentile: 0.33135
aliases:
  - GHSA-6p96-cfg5-4vhp
ecosystem: composer
ingestedAt: '2026-07-15T17:44:34.550Z'
---

## Overview

Koel is a free, open-source music streaming solution. Prior to 9.7.0, the Subsonic-compatible createInternetRadioStation.view and updateInternetRadioStation.view routes accept an authenticated user's streamUrl without the SafeUrl and HasAudioContentType checks used by the regular radio API. app/Http/Requests/Subsonic/CreateInternetRadioStationRequest.php and app/Http/Requests/Subsonic/UpdateInternetRadioStationRequest.php pass the stored URL through app/Services/RadioService.php to app/Services/Radio/RadioStreamProxy.php, where RadioStreamProxy::openStream() calls fopen($url, 'r', false, $context). Streaming /radio/stream/{id} returns the upstream response body, allowing access to loopback, RFC1918, Docker bridge, metadata, or other internal HTTP services reachable from the Koel server. This issue is fixed in version 9.7.0.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-54493)

Affected packages:

- `phanan/koel <= 9.6.0`

Patched in:

- `phanan/koel 9.7.0`

Source: https://github.com/advisories/GHSA-6p96-cfg5-4vhp
