/

CVE-2026-115810

Severity:

HIGH RISK

(7.7)

SSRF (CWE-918) in Tandoor Recipes Pestle Importer Workflow

CVE-2026-115810

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Internal Service Access and Response Disclosure

Severity:

HIGH RISK

(7.7)

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

Tandoor Recipes contains a server-side request forgery vulnerability in its Pestle importer, where authenticated low-privileged users can cause the server to send GET requests to attacker-selected internal or external hosts. If a crafted image URL is accepted during JSON import, the attacker may probe internal services and retrieve responses through the stored recipe image.

Tandoor Recipes contains a server-side request forgery vulnerability in its Pestle importer, where authenticated low-privileged users can cause the server to send GET requests to attacker-selected internal or external hosts. If a crafted image URL is accepted during JSON import, the attacker may probe internal services and retrieve responses through the stored recipe image.

Affected context

The vulnerability occurs in Tandoor Recipes deployments that enable the Pestle JSON importer and process recipe image URLs through the affected import path. It becomes risky when low-privileged authenticated users can submit or influence imported recipe data, while the importer performs outbound requests without applying the application's centralized SSRF protections.

The vulnerability occurs in Tandoor Recipes deployments that enable the Pestle JSON importer and process recipe image URLs through the affected import path. It becomes risky when low-privileged authenticated users can submit or influence imported recipe data, while the importer performs outbound requests without applying the application's centralized SSRF protections.

Exploit preconditions

  • Attack surface: Pestle JSON recipe import functionality
  • Required access: An authenticated account with permission to submit or import Pestle recipe data
  • Trigger point: Processing of a recipe image URL during import
  • Why exploitation is possible: The importer issues a raw outbound HTTP GET request that can bypass centralized SSRF filtering and permits attacker-controlled destinations
  • Target condition: The server must be able to reach the selected internal or external host
  • Attack surface: Pestle JSON recipe import functionality
  • Required access: An authenticated account with permission to submit or import Pestle recipe data
  • Trigger point: Processing of a recipe image URL during import
  • Why exploitation is possible: The importer issues a raw outbound HTTP GET request that can bypass centralized SSRF filtering and permits attacker-controlled destinations
  • Target condition: The server must be able to reach the selected internal or external host

Why this happens

The underlying flaw is an inconsistent outbound-request trust boundary. The Pestle importer directly invokes an HTTP request operation using a URL supplied through imported content, rather than routing the request through a consistently enforced SSRF-safe request layer.

This maps to CWE-918: Server-Side Request Forgery, because server-side network access is influenced by untrusted user input. The resulting behavior can allow requests to destinations that should be inaccessible to the submitting user, including internal services or loopback endpoints.

The underlying flaw is an inconsistent outbound-request trust boundary. The Pestle importer directly invokes an HTTP request operation using a URL supplied through imported content, rather than routing the request through a consistently enforced SSRF-safe request layer.

This maps to CWE-918: Server-Side Request Forgery, because server-side network access is influenced by untrusted user input. The resulting behavior can allow requests to destinations that should be inaccessible to the submitting user, including internal services or loopback endpoints.

Potential impact

  • Internal services could be probed for open ports or exposed protocols.
  • Cloud metadata or other internal-only endpoints could be queried.
  • Sensitive internal responses could be disclosed through stored recipe images.
  • Network segmentation controls could be bypassed from the application server's position.
  • Internal services could be exposed to request-based abuse or reconnaissance.
  • Internal services could be probed for open ports or exposed protocols.
  • Cloud metadata or other internal-only endpoints could be queried.
  • Sensitive internal responses could be disclosed through stored recipe images.
  • Network segmentation controls could be bypassed from the application server's position.
  • Internal services could be exposed to request-based abuse or reconnaissance.

General mitigation guidance

Mitigation generally focuses on applying a single, well-defined SSRF defense policy to every server-side outbound request.

Common defensive patterns include:

  • Routing importer requests through a hardened, centrally enforced HTTP client.
  • Allowlisting permitted URL schemes, destinations, ports, and network ranges.
  • Blocking loopback, link-local, private, reserved, and metadata-service address spaces after DNS resolution.
  • Rechecking resolved addresses to reduce DNS rebinding and redirect-based bypasses.
  • Limiting or disabling remote image fetching for low-privilege imports where it is not required.
  • Validating redirects, enforcing response-size and timeout limits, and avoiding storage of unrestricted remote responses.
  • Running application components with restricted egress and least-privilege network access.
  • Treating imported URLs as untrusted data regardless of the user's authenticated status.

Mitigation generally focuses on applying a single, well-defined SSRF defense policy to every server-side outbound request.

Common defensive patterns include:

  • Routing importer requests through a hardened, centrally enforced HTTP client.
  • Allowlisting permitted URL schemes, destinations, ports, and network ranges.
  • Blocking loopback, link-local, private, reserved, and metadata-service address spaces after DNS resolution.
  • Rechecking resolved addresses to reduce DNS rebinding and redirect-based bypasses.
  • Limiting or disabling remote image fetching for low-privilege imports where it is not required.
  • Validating redirects, enforcing response-size and timeout limits, and avoiding storage of unrestricted remote responses.
  • Running application components with restricted egress and least-privilege network access.
  • Treating imported URLs as untrusted data regardless of the user's authenticated status.

How teams detect issues like this

Organizations can look for SSRF exposure through:

  • Static analysis rules identifying direct HTTP client calls that consume imported or request-controlled URLs.
  • Code review checks for outbound request paths that bypass centralized network-safety wrappers.
  • Tests using private, loopback, link-local, metadata, and redirecting destinations to verify policy enforcement.
  • Network telemetry correlating application processes with unexpected internal address access.
  • Alerts for recipe imports followed by requests to sensitive address ranges or unusual ports.
  • Policy enforcement requiring approved HTTP clients and explicit destination validation for server-side fetches.

Automated security scanners and code review tools may help identify direct request calls and missing SSRF controls, but runtime network monitoring remains useful for detecting bypasses.

Organizations can look for SSRF exposure through:

  • Static analysis rules identifying direct HTTP client calls that consume imported or request-controlled URLs.
  • Code review checks for outbound request paths that bypass centralized network-safety wrappers.
  • Tests using private, loopback, link-local, metadata, and redirecting destinations to verify policy enforcement.
  • Network telemetry correlating application processes with unexpected internal address access.
  • Alerts for recipe imports followed by requests to sensitive address ranges or unusual ports.
  • Policy enforcement requiring approved HTTP clients and explicit destination validation for server-side fetches.

Automated security scanners and code review tools may help identify direct request calls and missing SSRF controls, but runtime network monitoring remains useful for detecting bypasses.

Sources

SourceLink
github.comgithub.com/TandoorRecipes/recipes/releases/tag/2.7.0
github.comgithub.com/TandoorRecipes/recipes/security/advisories/GHSA-xq7g-9q95-vjc6
vulncheck.comvulncheck.com/advisories/tandoor-recipes-before-ssrf-via-pestle-importer-image-url

Frequently asked

questions

It can be exploitable through the application's authenticated import functionality. The attacker does not necessarily need network access to the target internal service because the Tandoor server performs the request on the attacker's behalf.

Exploitation requires an authenticated account with sufficient permission to submit or process Pestle JSON imports. The account may be low privileged, depending on deployment-specific authorization rules.

Apply a centralized SSRF-safe request policy to the Pestle importer, including destination allowlisting, private-address blocking, redirect validation, and restricted outbound network access.

Treat all imported URLs as untrusted, require approved outbound-request wrappers, test internal-address and redirect cases, and enforce egress controls that limit what application processes can reach.

It can be exploitable through the application's authenticated import functionality. The attacker does not necessarily need network access to the target internal service because the Tandoor server performs the request on the attacker's behalf.

Exploitation requires an authenticated account with sufficient permission to submit or process Pestle JSON imports. The account may be low privileged, depending on deployment-specific authorization rules.

Apply a centralized SSRF-safe request policy to the Pestle importer, including destination allowlisting, private-address blocking, redirect validation, and restricted outbound network access.

Treat all imported URLs as untrusted, require approved outbound-request wrappers, test internal-address and redirect cases, and enforce egress controls that limit what application processes can reach.

Find out what's already
exploitable in your codebase.