/

CVE-2026-55598

Severity:

CRITICAL RISK

(9.1)

Server-Side Request Forgery (CWE-918) in PinePods API

CVE-2026-55598

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Internal service access and confidential data disclosure

Severity:

CRITICAL RISK

(9.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

PinePods allows an authenticated user to submit a podcast feed containing an attacker-controlled enclosure URL, which the server later requests without validating its destination. Under deployments with server-side episode downloading enabled, this can expose internal services, private network resources, loopback endpoints, or cloud metadata responses to the user.

PinePods allows an authenticated user to submit a podcast feed containing an attacker-controlled enclosure URL, which the server later requests without validating its destination. Under deployments with server-side episode downloading enabled, this can expose internal services, private network resources, loopback endpoints, or cloud metadata responses to the user.

Affected context

The vulnerability occurs in PinePods installations where users can add or refresh podcast feeds and server-side episode downloading is enabled. Feed enclosure URLs are stored and later requested by the application, while both download and duration-estimation paths may follow destinations that resolve to internal addresses. The risk is greater when the PinePods process can reach private networks, loopback services, or cloud metadata endpoints and downloaded responses are available through the application.

The vulnerability occurs in PinePods installations where users can add or refresh podcast feeds and server-side episode downloading is enabled. Feed enclosure URLs are stored and later requested by the application, while both download and duration-estimation paths may follow destinations that resolve to internal addresses. The risk is greater when the PinePods process can reach private networks, loopback services, or cloud metadata endpoints and downloaded responses are available through the application.

Exploit preconditions

  • Attack surface: Podcast feed subscription and episode download functionality
  • Required access: An authenticated PinePods account; low-privilege access may be sufficient
  • Configuration condition: Server-side episode downloading must be enabled
  • Trigger points: Feed parsing, duration estimation, feed refresh, or episode downloading
  • Network condition: The PinePods server must be able to reach the targeted internal or external destination
  • Why exploitation is possible: Enclosure URLs are accepted without adequate destination host or IP validation, and default redirect behavior can reach an internal target after an initially external request
  • Attack surface: Podcast feed subscription and episode download functionality
  • Required access: An authenticated PinePods account; low-privilege access may be sufficient
  • Configuration condition: Server-side episode downloading must be enabled
  • Trigger points: Feed parsing, duration estimation, feed refresh, or episode downloading
  • Network condition: The PinePods server must be able to reach the targeted internal or external destination
  • Why exploitation is possible: Enclosure URLs are accepted without adequate destination host or IP validation, and default redirect behavior can reach an internal target after an initially external request

Why this happens

The underlying issue is server-side request forgery, mapped to CWE-918. PinePods treats enclosure URLs supplied through attacker-controlled RSS content as trusted destinations, stores them, and later uses them for outbound HTTP requests. Missing destination validation, combined with redirect following and server network reachability, allows user-influenced requests to cross trust boundaries and access resources that should not be exposed to the requester.

The underlying issue is server-side request forgery, mapped to CWE-918. PinePods treats enclosure URLs supplied through attacker-controlled RSS content as trusted destinations, stores them, and later uses them for outbound HTTP requests. Missing destination validation, combined with redirect following and server network reachability, allows user-influenced requests to cross trust boundaries and access resources that should not be exposed to the requester.

Potential impact

  • An attacker may enumerate loopback, private-network, or cloud infrastructure services
  • Internal service responses could be disclosed through downloaded episode records
  • Cloud instance metadata or temporary credentials could be exposed
  • Sensitive internal application data may be retrieved
  • Network segmentation assumptions could be weakened
  • The server may be used to reach administrative or otherwise restricted endpoints
  • An attacker may enumerate loopback, private-network, or cloud infrastructure services
  • Internal service responses could be disclosed through downloaded episode records
  • Cloud instance metadata or temporary credentials could be exposed
  • Sensitive internal application data may be retrieved
  • Network segmentation assumptions could be weakened
  • The server may be used to reach administrative or otherwise restricted endpoints

General mitigation guidance

Mitigation generally focuses on reducing trust in user-controlled URLs and enforcing outbound request policy at every request path.

Common defensive patterns include:

  • Permit only approved URL schemes and explicitly allowed destination domains or address ranges
  • Resolve hostnames and validate every resulting IP address before connecting
  • Revalidate destinations after redirects, or disable redirects where they are not required
  • Apply consistent validation to GET, HEAD, refresh, duration-estimation, and download operations
  • Block loopback, link-local, private, reserved, and cloud metadata address ranges by default
  • Restrict egress from the application using network policies, firewalls, or an outbound proxy
  • Limit access to downloaded response content and avoid retaining sensitive internal responses
  • Run the service with minimal network reachability and least-privilege credentials
  • Use secure-by-default settings that do not enable server-side downloading unless needed

Mitigation generally focuses on reducing trust in user-controlled URLs and enforcing outbound request policy at every request path.

Common defensive patterns include:

  • Permit only approved URL schemes and explicitly allowed destination domains or address ranges
  • Resolve hostnames and validate every resulting IP address before connecting
  • Revalidate destinations after redirects, or disable redirects where they are not required
  • Apply consistent validation to GET, HEAD, refresh, duration-estimation, and download operations
  • Block loopback, link-local, private, reserved, and cloud metadata address ranges by default
  • Restrict egress from the application using network policies, firewalls, or an outbound proxy
  • Limit access to downloaded response content and avoid retaining sensitive internal responses
  • Run the service with minimal network reachability and least-privilege credentials
  • Use secure-by-default settings that do not enable server-side downloading unless needed

How teams detect issues like this

Detection can combine application review, runtime monitoring, and network policy enforcement.

  • Use static analysis and code review to identify HTTP clients receiving URLs derived from RSS, database, request, or other user-controlled data
  • Review all redirect handling, DNS resolution, IP classification, and URL validation logic
  • Search for outbound GET or HEAD requests that lack scheme, hostname, port, and destination-range checks
  • Monitor application egress to loopback, private, link-local, and cloud metadata addresses
  • Alert on unusual feed enclosure destinations, redirect chains, or repeated requests to internal address ranges
  • Enforce outbound network policies that deny internal and metadata ranges unless explicitly required
  • Automated security review tools may help identify user-controlled URL flows, but should be supplemented with deployment-level testing

Detection can combine application review, runtime monitoring, and network policy enforcement.

  • Use static analysis and code review to identify HTTP clients receiving URLs derived from RSS, database, request, or other user-controlled data
  • Review all redirect handling, DNS resolution, IP classification, and URL validation logic
  • Search for outbound GET or HEAD requests that lack scheme, hostname, port, and destination-range checks
  • Monitor application egress to loopback, private, link-local, and cloud metadata addresses
  • Alert on unusual feed enclosure destinations, redirect chains, or repeated requests to internal address ranges
  • Enforce outbound network policies that deny internal and metadata ranges unless explicitly required
  • Automated security review tools may help identify user-controlled URL flows, but should be supplemented with deployment-level testing

Sources

SourceLink
github.comgithub.com/madeofpendletonwool/PinePods/commit/34843d37168c37bbf23ed6dbbf403f351bd64755
github.comgithub.com/madeofpendletonwool/PinePods/security/advisories/GHSA-j876-2282-p4hg
github.comgithub.com/madeofpendletonwool/PinePods/tree/0.9.0

Frequently asked

questions

Yes, within the application's access model. A low-privilege authenticated user may be able to influence server-side requests if podcast subscriptions and server downloads are available.

No. The attack relies on the PinePods server's network position and connectivity. The attacker primarily needs an account that can submit or refresh podcast feeds.

Treat feed-provided URLs as untrusted, allow only explicitly approved destinations, validate resolved IP addresses, and reapply those checks after redirects.

Combine strict outbound URL policies with egress filtering, metadata-endpoint blocking, least-privilege network access, and monitoring for unexpected internal-bound requests.

Yes, within the application's access model. A low-privilege authenticated user may be able to influence server-side requests if podcast subscriptions and server downloads are available.

No. The attack relies on the PinePods server's network position and connectivity. The attacker primarily needs an account that can submit or refresh podcast feeds.

Treat feed-provided URLs as untrusted, allow only explicitly approved destinations, validate resolved IP addresses, and reapply those checks after redirects.

Combine strict outbound URL policies with egress filtering, metadata-endpoint blocking, least-privilege network access, and monitoring for unexpected internal-bound requests.

Find out what's already
exploitable in your codebase.