Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister or use low-priv account
-
DeliveryHost malicious RSS with internal enclosure URL
-
ExploitPOST /api/data/add_podcast to subscribe
-
ExecutionTrigger server fetch via download_podcast (or HEAD on refresh)
-
PersistServer requests internal/metadata target, follows redirects
-
ImpactRead back saved response as episode file
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires (1) an authenticated low-privilege PinePods account - self-service signup is supported, so an attacker can often create one; and (2) for the download sink, server-side downloads enabled, which is the default. The attacker subscribes to an attacker-controlled RSS feed via POST /api/data/add_podcast; the <enclosure url> (audio/* or video/* media type) is stored verbatim in Episodes.episodeurl with no host/IP validation, then fetched by reqwest on POST /api/data/download_podcast (GET, saved to disk/DownloadedEpisodes) and also via an unvalidated HEAD in estimate_duration_from_audio_url_async() during feed add/refresh. Because reqwest follows redirects by default, an initially external enclosure URL can 302-redirect to an internal target. Limiting factors: exploitation needs a valid session (not fully unauthenticated) and, for the read-back download sink, the default-on server-downloads setting; versions at or above 0.9.0 are not affected. |
| Impact | This is a genuine high-priority issue, not a CVSS-inflated one. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L, base 9.1) describes a network-reachable, low-complexity, low-privilege attack with a scope change, and every element is corroborated by the GHSA advisory's source-level analysis and working end-to-end proof-of-concept. The vuln.today decision label is act_now. The one notable discrepancy is severity magnitude: the vendor advisory self-rates this ≈7.6 (and labels it 'Medium') because exploitation is gated on an authenticated session and on server-downloads being enabled, whereas NVD/the provided score is 9.1 - the difference is driven by PR and the read-back amplification, not by any dispute over the mechanism. Both agree on the core signals. No EPSS score was provided (cannot assess statistical exploitation probability) and the input contains no CISA KEV entry, so there is no evidence of in-the-wild exploitation; however, a complete, reproducible PoC with captured output is published in the GHSA advisory, so the barrier to exploitation is low. The authentication gate is materially weakened because self-service signup is supported, meaning an attacker can often provision their own low-privilege account. Net: treat as act_now for exposed/internet-reachable instances, especially in cloud environments with reachable instance-metadata services. |
| Exploit ScenarioDerived | A low-privilege user (potentially self-registered via supported self-service signup) subscribes to an attacker-controlled RSS feed whose <enclosure url> points at an internal target such as http://169.254.169.254/latest/meta-data/ or a loopback admin service, then triggers POST /api/data/download_podcast. The PinePods server issues the fetch, follows any redirects into the internal network, and saves the internal response to disk as the 'episode' file, which the attacker then downloads to read back the stolen data. A complete end-to-end proof-of-concept (including captured cloud-metadata-style and loopback read-back output against the default Docker image) is published in the vendor GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Authenticated server-side request forgery in PinePods before 0.9.0 allows a low-privilege user, where self-service signup is supported, to make the server issue GET/HEAD requests to loopback, private-network, and cloud metadata endpoints by subscribing to an attacker-controlled RSS feed. The enclosure URL is stored without host/IP validation and later fetched by reqwest with default redirect following, and downloaded responses are saved and recorded, enabling internal-service enumeration, confidential-data disclosure, and possible metadata credential theft. The GitHub advisory includes a reproducible end-to-end proof-of-concept against a default Docker deployment; the issue is fixed in 0.9.0, the vuln.today decision label is act_now, and no CISA KEV entry or EPSS score is provided in the supplied intelligence.
RemediationAI
Upgrade to PinePods 0.9.0 or later using the 0.9.0 release tree and the fix commit 34843d37168c37bbf23ed6dbbf403f351bd64755. The patch adds rust-api/src/services/url_guard.rs, restricts server-side fetches to http/https, rejects loopback, private, link-local, unique-local, CGNAT, unspecified, broadcast, documentation, and reserved destinations, unwraps IPv4-mapped IPv6 and NAT64 forms, and re-validates redirect hops in both the download and duration-estimation paths. The supplied advisory and references do not document a workaround; upgrading to 0.9.0 is the complete fix. The vendor advisory is at https://github.com/madeofpendletonwool/PinePods/security/advisories/GHSA-j876-2282-p4hg.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
PinePods is a Rust-based self-hosted podcast manager. The flaw is CWE-918: feed-rs parses an attacker-supplied RSS feed and the enclosure URL value is written verbatim to Episodes.episodeurl in rust-api/src/database.rs, with no is_private, is_loopback, link-local, or metadata-address check anywhere in rust-api/src. Two sinks consume that stored URL: download_episode_and_wait in rust-api/src/services/tasks.rs issues a reqwest GET and writes the response body to disk and DownloadedEpisodes, and estimate_duration_from_audio_url_async in rust-api/src/database.rs issues an unvalidated HEAD during feed add/refresh. Because reqwest follows redirects by default, an initially external enclosure URL can redirect to an internal target. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L; PR:L confirms an authenticated low-privilege user, and the scope change reflects the request crossing from the application into the server's internal network.
Know when Pinepods gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L
Network-reachable with no special complexity (AC:L); authenticated low-priv account needed, weakened by self-signup (PR:L); request crosses into the internal network (S:C); read-back of internal/metadata data (C:H), minor write/availability impact (I:L/A:L).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Technical POC Analysis
CWE-918 Server-Side Request Forgery.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A critical server-side request forgery vulnerability in PinePods (versions before 0.9.0) allows any low-privilege user-especially where self-service signup is enabled-to force the server to make requests to internal networks and cloud metadata endpoints. This could lead to unauthorized access to sensitive internal services and theft of cloud credentials, impacting the confidentiality of the organization's infrastructure and data. Leadership should prioritize remediation due to the potential for broad compromise and the existence of a public proof-of-concept, even though no active exploitation has been observed. Note that a vendor fix is available in version 0.9.0.
If unable to patch immediately, disable self-service signup, implement network segmentation and egress filtering to block requests to loopback, private IP ranges, and cloud metadata endpoints, and restrict outbound traffic from the PinePods server to an allowlist of required destinations.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-114370
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB