CVE-2026-55598: PinePods: Authenticated SSRF via podcast RSS enclosure URL (server-side fetch of attacker-controlled URL, no host validation)

Published Oct 30, 2026
·
Updated

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/addpodcast in rust-api/src/handlers/podcasts.rs. getpodcastvalues and addepisodes 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/downloadpodcast invokes spawndownloadpodcastepisode and downloadepisodeandwait() 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 estimatedurationfromaudiourlasync() 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.

Event History

Oct 30, 2026
CVE Published
via MITRE·07:31 PM
Data Sourced
via MITRE·07:31 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·08:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which users can trigger the server-side requests?

A low-privilege authenticated user can trigger them by subscribing to an attacker-controlled RSS feed and then using the podcast download functionality. No user interaction is required.

2

What systems can be reached from the vulnerable server?

The vulnerable server can send GET and HEAD requests to destinations it can reach, including loopback addresses, private-network services, and cloud metadata services. Redirects are followed by default, so an external URL can redirect to an internal destination.

3

Can an attacker retrieve data returned by an internal service?

Yes. Downloaded responses are saved and recorded for later retrieval, allowing an authenticated attacker to read internal responses obtained through the download path.

4

Which releases are affected?

PinePods releases prior to 0.9.0 are affected. The provided data does not describe a mitigation for deployments that cannot move to 0.9.0 or later.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203