PinePods: Server-side request forgery via podcast enclosure URL
Summary
PinePods fetches podcast episode enclosure URLs on the server without validating the destination host or IP address. An authenticated user, including one who registered through self-service signup, can subscribe to a crafted RSS feed and make the server send GET and HEAD requests to loopback, private network and cloud metadata addresses. Responses are saved as downloaded episodes and can be read back, which may expose internal services and data. Server-side episode downloads are enabled by default.
Affected
- PinePods before 0.9.0 (CNA record: affected < 0.9.0)
- VulDB lists the range up to 0.8.x and the GitHub advisory lists <= 0.6.0, so the exact range is disputed
- CVSS: CNA 9.1 (Critical), VulDB 4.3 (Medium)
Fixed in
- Version 0.9.0 (commit 34843d37168c37bbf23ed6dbbf403f351bd64755 adds an SSRF guard)
Workaround
- No vendor-documented workaround known.
- Interim measures (our recommendation): disable self-service signup, disable server-side episode downloads until patched, and restrict outbound traffic from the PinePods host to loopback, private networks and cloud metadata addresses.
Exploitation
- CISA SSVC lists exploitation as PoC and automatable as no.
- VulDB states no exploit exists; a third-party tracker claims exploit code was published, which is not verified.
- No confirmed in-the-wild exploitation or CISA KEV entry found.
Our recommendation
- Identify all PinePods instances, including containers and cloud VMs.
- Upgrade to version 0.9.0 or later.
- Until upgraded, disable open registration and server-side downloads and restrict outbound traffic.
- If PinePods runs on a cloud VM, review metadata service access and rotate credentials if misuse is suspected.
- Review accounts and feed subscriptions for unknown entries.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub fix commit 34843d3 github.com
- GitHub Security Advisory GHSA-j876-2282-p4hg github.com
- PinePods 0.9.0 release tag github.com
- VulDB entry 429352 vuldb.com
- Strix CVE overview www.strix.ai
- Ethiack threat tracker zero.ethiack.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 05:06.
Original description (NVD)
PinePods is a complete, self-hosted podcast management system written in Rust. Prior to 0.9.0, an authenticated user can subscribe to an attacker-controlled RSS feed through `POST /api/data/add_podcast` in `rust-api/src/handlers/podcasts.rs`. `get_podcast_values` and `add_episodes` in `rust-api/src/database.rs` parse the feed with `feed-rs` and store the `<enclosure url>` verbatim in `Episodes.episodeurl` without destination host/IP validation. `POST /api/data/download_podcast` invokes `spawn_download_podcast_episode` and `download_episode_and_wait()` in `rust-api/src/services/tasks.rs`, which sends a `reqwest` GET to the stored URL and saves and records the response in `DownloadedEpisodes` for later retrieval. The `estimate_duration_from_audio_url_async()` path in `rust-api/src/database.rs` also sends an unvalidated HEAD during feed add/refresh. Default redirect following permits an initially external enclosure URL to redirect to an internal target. A low-privilege user can make server-side GET/HEAD requests to reachable loopback, private-network and cloud metadata services and read downloaded internal responses, enabling internal-service enumeration, confidential-data disclosure and possible metadata credential theft. Episode downloading requires server downloads to be enabled, which is the default; self-service signup is supported. This issue is fixed in version 0.9.0.
NVD references (4)
- https://github.com/madeofpendletonwool/PinePods/commit/34843d37168c37bbf23ed6dbbf403f351bd64755
- https://github.com/madeofpendletonwool/PinePods/security/advisories/GHSA-j876-2282-p4hg
- https://github.com/madeofpendletonwool/PinePods/tree/0.9.0
- https://github.com/madeofpendletonwool/PinePods/security/advisories/GHSA-j876-2282-p4hg
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
