Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliveryCraft Pestle import with internal image URL
-
ExploitPOST file to /api/import/ (type=PESTLE)
-
ExecutionServer issues unhardened GET to internal host
-
ImpactExfiltrate internal response via stored recipe image
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 a valid authenticated account holding only the standard space 'user' role (no admin) and access to the Pestle import endpoint POST /api/import/ with type=PESTLE - a default-available feature present since v2.6.15. The attacker controls the image URL field inside the uploaded Pestle JSON. The limiting factors are: (1) authentication is mandatory (PR:L - a low-privileged token/account must be obtained first), and (2) the read channel is constrained to responses that are stored and retrievable as a recipe image, so exfiltration favors image-parseable internal responses, though blind port/service discovery and reaching internal/metadata endpoints work regardless. No user interaction by a victim is required. Real-world severity rises sharply when Tandoor runs in a cloud environment where 169.254.169.254 instance metadata is reachable. |
| Impact | This is a genuine but moderate-priority issue, not a top-tier emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network-reachable, low-complexity exploitation, but PR:L means it requires an authenticated low-privileged account - a meaningful barrier against anonymous mass exploitation. The scored impact is confined to subsequent systems (SC:H, with VC/VI/VA all N on the Tandoor host itself), which correctly captures SSRF: the Tandoor app is not directly compromised, but it becomes a pivot to internal services and cloud metadata. The vuln.today Decision label is 'this_month' (not act_now/emergency), aligning with the 6.3 base score. No EPSS score and no CISA KEV entry were supplied, so there is no evidence of active or widespread exploitation - exploitation status is 'no public exploit identified' in the strict KEV/POC-feed sense, HOWEVER the vendor GHSA advisory (GHSA-xq7g-9q95-vjc6) contains a complete working PoC that the reporter states was reproduced twice, so a functional proof-of-concept is public. Net: treat as a schedule-this-month patch, elevated if the Tandoor instance runs in a cloud environment with reachable instance-metadata (169.254.169.254) or sits adjacent to sensitive internal networks, since that is where SC:H becomes materially dangerous. |
| Exploit ScenarioDerived | An attacker with only a standard low-privileged Tandoor 'user' account crafts a malicious .pestle import file whose recipe image URL points at an internal target (e.g. http://127.0.0.1:8899/ or the cloud metadata endpoint), then POSTs it to /api/import/ with type=PESTLE. The server fetches that URL via the unhardened requests.get call and stores the fetched internal response as the recipe image, letting the attacker perform internal port/service discovery and exfiltrate image-parseable internal responses. A complete, reporter-reproduced PoC is published in the vendor's GHSA advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Server-side request forgery in the Pestle importer of Tandoor Recipes through 2.6.15 allows an authenticated user with only the standard space 'user' role to make the server issue GET requests to arbitrary internal or external hosts by supplying a crafted image URL in a Pestle JSON import. It is a genuine but moderate-priority issue rather than a top-tier emergency: the flaw is reachable through POST /api/import/ with type=PESTLE, a default-available feature since v2.6.15, and the advisory documents a PoC with reproduced loopback fetch and storage of the internal response as a recipe image. No CISA KEV listing accompanies this CVE in the supplied data; 2.7.0 is the vendor-released fix.
RemediationAI
Upgrade to Tandoor Recipes 2.7.0, the vendor-released patch (https://github.com/TandoorRecipes/recipes/releases/tag/2.7.0); the code fix replaces the raw requests.get in cookbook/integration/pestle.py with the existing safe_request() helper from cookbook/helper/HelperFunctions.py, and the advisory recommends a CI lint rule forbidding raw outbound HTTP requests outside safe_request(). If immediate upgrade is not possible, restrict access to POST /api/import/ with type=PESTLE to trusted users or temporarily disable the Pestle import type, accepting that legitimate Pestle imports will be unavailable. As a network-layer compensating control, block server egress to loopback addresses and 169.254.169.254, noting that this may affect other importers or integrations that legitimately fetch external or local resources. The vendor advisory is https://github.com/TandoorRecipes/recipes/security/advisories/GHSA-xq7g-9q95-vjc6.
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
CWE-918 (server-side request forgery) occurs because the Pestle import handler at cookbook/integration/pestle.py:157 fetches the attacker-controlled recipe image URL with a raw requests.get() call instead of the project's centralized safe_request() helper in cookbook/helper/HelperFunctions.py. That helper is used by other importers to enforce IP filtering, block loopback addresses, and block metadata addresses; bypassing it lets the request reach 127.0.0.1, internal-only services, and 169.254.169.254. The import endpoint is POST /api/import/ (AppImportView.post, perm CustomIsUser) and the fetched response is stored as the recipe image, so exfiltration works best for image-parseable internal responses while blind port and service discovery is possible regardless. The assessed CVSS:3.1 vector is AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N, reflecting mandatory low-privileged authentication and a scope change with high confidentiality impact but no integrity or availability impact.
Know when Recipes 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
Authenticated low-priv user (PR:L) sends a network request with no victim interaction; the bug pivots requests to other internal systems (S:C) to read internal/metadata responses (C:H), with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Tandoor Recipes before 2.7.0 contains a server-side request forgery vulnerability in the Pestle importer that allows authenticated low-privileged users to force the server to issue GET requests to arbitrary internal or external hosts by crafting a malicious image URL in a Pestle JSON import file. Attackers can exploit the raw requests.get call in cookbook/integration/pestle.py, which bypasses the application's centralized requests-hardened SSRF filter, to reach internal-only endpoints, perform port/service discovery, and exfiltrate internal responses via the stored recipe image.
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.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve
Tandoor Recipes prior to 2.5.1 contains a blind server-side request forgery vulnerability in the Cookmate recipe import
Tandoor Recipes 2.0.0-alpha-1, fixed in 2.0.0-alpha-2, is vulnerable to privilege escalation. Rated medium severity (CVS
Recipes version 1.5.10 allows arbitrary HTTP requests to be made through the server. Rated medium severity (CVSS 6.5), t
In Recipes, versions 0.9.1 through 1.2.5 are vulnerable to Server Side Request Forgery (SSRF), in the “Import Recipe” fu
Tandoor Recipes versions prior to 2.6.0 allow unlimited brute-force password guessing attacks against any known username
Path traversal in Tandoor Recipes prior to 2.5.1 allows authenticated users with import permissions to read arbitrary fi
Broken object-level authorization in Tandoor Recipes before 2.6.12 lets an authenticated member of the same Space, holdi
Privilege escalation in Tandoor Recipes prior to version 2.6.4 allows authenticated users with read-only shared access t
Authenticated users can modify and expose private recipes in Tandoor Recipes through broken object-level authorization i
Tandoor Recipes versions through 2.5.3 permit Host header injection attacks that enable invite link poisoning, allowing
Authenticated blind server-side request forgery in Tandoor Recipes before 2.6.10 allows a user with privileges to create
EUVD-2026-109097
GHSA-2rvv-3hmc-xc55
NVD
CVE.org
EPSS
Exploit-DB