SSRF (Server-Side Request Forgery) in phanan/koel (CVE-2026-54492)
Summary
SSRF in phanan/koel (CVE-2026-54492). Risk of unauthorized operations or information disclosure. Exploitable via SafeUrl. Mitigation: upgrade to 9.7.0 or later.
Original description
The description as published by the source.
Summary
Koel v9.6.0 protects the regular podcast subscription API with SafeUrl, but the Subsonic-compatible createPodcastChannel.view route does not apply the same protection. An authenticated user can supply a private URL and cause Koel to fetch it server-side during podcast parsing.
This was validated against v9.6.0 (352ea5ec27fa22294da8fb6beacb3d5552f0d09c) using the official phanan/koel:9.6.0 image.
This is distinct from GHSA-7j2f-6h2r-6cqc, which fixed unsafe episode enclosure URLs in versions <= 9.3.4. The issue here is a newer validation gap in the Subsonic route itself, still present in v9.6.0.
Details
SafeUrl protects the regular podcast API only
The regular podcast subscription path validates the feed URL with SafeUrl:
app/Http/Requests/API/Podcast/PodcastStoreRequest.php
return [
'url' => ['required', 'url', new SafeUrl()],
];
The Subsonic-compatible route does not:
routes/subsonic.phpcreatePodcastChannel.view
app/Http/Requests/Subsonic/CreatePodcastChannelRequest.php
return [
'url' => ['required', 'string', 'url'],
];
That creates the same kind of trust-boundary mismatch as the radio issue: the main API rejects private targets, while the compatibility route accepts them.
The URL is fetched immediately by the podcast parser
The attacker-controlled URL is used by the podcast service during channel creation:
- `app/Http/Controllers/Subsonic/CreatePodcastChannelControll…
Source: GitHub Security Advisories (Global) NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-54492 has been found in phanan/koel.
Attackers can target a specific entry point like SafeUrl over the network to misuse the product.
Risk of unauthorized operations or information disclosure. CVSS score: 4.3/10.
What to do: upgrade phanan/koel to 9.7.0 or later.
If unsure, ask your IT team or search "phanan/koel CVE-2026-54492" on the vendor's site.
CVE-2026-54492 (phanan/koel) — CWE-918 / CVSS v3 4.3
Attack vector: remote (network-reachable) / no user interaction
Attack surface: SafeUrl / createPodcastChannel.view / HEAD
Patched: 9.7.0 — apply immediately
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
SSRF (CWE-918) exists in phanan/koel. Attackers reach the vulnerable code path via SafeUrl.
Check the vendor advisory for the affected versions of phanan/koel. Attack surface: SafeUrl / createPodcastChannel.view / HEAD.
Severity: Medium (CVSS 4.3/10). Risk of unauthorized operations or information disclosure.
Update to 9.7.0.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'phanan/koel' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'phanan/koel' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
phanan/koelを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply patch patch
Upgrade phanan/koel to 9.7.0ステージング環境で 9.7.0 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
References
- package github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com