Skip to main content

Tandoor Recipes EUVDEUVD-2026-103145

| CVE-2026-59970 HIGH
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-16 GitHub_M
7.7
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate and create a Space
  2. Delivery
    Configure AI provider URL to internal target
  3. Exploit
    Invoke ai-import/ai-step-sort action
  4. Execution
    Server issues blind outbound request
  5. Persist
    Observe success/refusal/timeout oracle
  6. Impact
    Map internal hosts, ports, and metadata reachability

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 an authenticated Tandoor account with privileges to create a Space and configure an AI provider URL, then trigger an AI action routed through the TARGET/api/ai-import/ or api/ai-step-sort/ code paths, which in versions prior to 2.6.10 call LiteLLM completion while bypassing the server's safe_request outbound SSRF filter. The decisive limiting factors are: (1) authentication is mandatory (PR:L) - this is not remote-unauthenticated; (2) the AI provider feature must be in use and the attacker must control the provider URL within their Space; and (3) the result is a blind reachability oracle only (connection success/refusal/timeout), not full response-body exfiltration, so direct secret theft from metadata endpoints is not confirmed. Post-fix, exploitation also requires the target URL to be absent from the operator-defined AI_ALLOWED_URLS allowlist, which defaults to empty.

Impact

This is a legitimate but moderate-priority issue, best characterized as an authenticated blind SSRF oracle rather than a high-urgency remote code execution flaw. The vendor CVSS vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N, 7.7 HIGH) correctly reflects network reachability, low attack complexity, and the scope change (S:C) that lets the vulnerable web app probe other systems - but the C:H rating appears generous given the description explicitly states the attacker only receives a blind oracle (connection success, refusal, or timeout) and cannot read response bodies, so actual data disclosure is limited to internal host/port reachability mapping. Critically, PR:L confirms this requires an authenticated account, meaningfully narrowing the attacker population versus an unauthenticated internet-facing bug. No EPSS score, CISA KEV listing, or public exploit was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation; exploitation is plausible but currently theoretical. The strongest mitigating signal is the deployment profile: Tandoor is a self-hosted recipe manager, typically run by homelab/hobbyist users behind their own networks rather than in large enterprise fleets, so blast radius is inherently limited. Net: patch when convenient, but this is not a drop-everything issue unless you run Tandoor with untrusted authenticated users who can configure AI providers and your server sits adjacent to sensitive internal services or cloud metadata endpoints.

Exploit ScenarioDerived

An authenticated Tandoor user (AV:N/PR:L) creates a Space, configures an AI provider pointing its URL at an internal target such as http://169.254.169.254/ or an internal host:port, then invokes an AI action (ai-import or ai-step-sort). The server connects outbound to that URL from the AI action without applying its safe_request SSRF checks, and the differing responses (success, connection refused, or timeout) act as a blind oracle to map which internal hosts and ports are reachable. No public exploit code was identified at time of analysis, though the mechanism is straightforward to reproduce from the advisory and commit.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Authenticated blind server-side request forgery in Tandoor Recipes before 2.6.10 allows a user with privileges to create a Space and configure an AI provider URL to force the server to connect to arbitrary internal addresses. The AI actions behind TARGET/api/ai-import/ and api/ai-step-sort/ pass the attacker-supplied provider URL straight to LiteLLM, bypassing the application's safe_request outbound filtering, and the resulting connection success, refusal, or timeout is surfaced as a reachability oracle that can be used to map internal hosts, ports, and cloud metadata endpoints. Exploitation requires an authenticated account (PR:L) and the AI provider feature to be in use, and exposure is limited to a blind oracle rather than confirmed response-body exfiltration; no public exploit code identified at time of analysis and no confirmed active exploitation (CISA KEV).

RemediationAI

Upgrade to Tandoor Recipes 2.6.10 or later, which adds the AI_ALLOWED_URLS allowlist check in front of every LiteLLM call path; the release and the vendor advisory GHSA-wq4h-2r8x-cv65 are the authoritative sources. After upgrading, operators who legitimately use a self-hosted AI server or proxy must populate AI_ALLOWED_URLS with the exact permitted base URLs (for example https://my-ai-server.com/api/v1/) - the setting defaults to an empty list, so any unlisted provider URL will now raise an error and AI import and step-sort actions will fail until the allowlist is configured; that is the intended trade-off and is documented in docs/system/configuration.md. If the AI provider feature is not used, leaving AI_ALLOWED_URLS empty and avoiding creation of AI provider entries removes the attack surface entirely. As defence in depth for unpatched instances, restrict who can create Spaces and configure AI providers (the flaw requires an authenticated user with those privileges), apply egress filtering so the Tandoor host cannot reach link-local metadata addresses such as 169.254.169.254 or the RFC1918 ranges it has no business contacting, and enforce IMDSv2 with hop-limit 1 on cloud instances - noting that egress rules can break legitimate outbound integrations and must be scoped carefully, and that network controls only reduce the oracle's value rather than fixing the missing validation. Where an upstream fix has already been backported or applied as a commit rather than a tagged release, patched-version confirmation should be verified against the vendor releases page before relying on it.

Affected VersionsENISA

Recipes < 2.6.10

Affected Packages

euvd recipes fix: 2.6.10

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

The flaw is a classic CWE-918 server-side request forgery rooted in an inconsistency between two outbound-request paths in the same Django/DRF codebase. Tandoor's normal URL-import functionality routes requests through a hardened safe_request helper that performs the server's SSRF checks, but the AI integration path in cookbook/views/api.py constructs a LiteLLM completion call against whatever provider URL is stored on the AiProvider model, with no equivalent validation. Because LiteLLM is a client library that will happily dial an arbitrary base URL, the server itself becomes the request proxy. Two code paths are involved - the AI import action and the AI step-sort action - and each leaks only whether the TCP/HTTP exchange succeeded, was refused, or timed out, which is sufficient for a blind network-reachability oracle but not for reading response bodies. The upstream fix (commit 79e783578a5b198a988eb9b486ba19f93df4cfa4) introduces a new AI_ALLOWED_URLS setting parsed from a comma-separated environment variable and adds an explicit allowlist membership check at four points in cookbook/views/api.py, raising an exception when the configured provider URL is not listed; the default is an empty list, so operators must opt in to any external AI endpoint. The accompanying Vue3 AiProviderEditor hint and configuration documentation make the allowlist requirement explicit to administrators.

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

Vendor (GitHub_M) PRIMARY 7.7 HIGH
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
vuln.today AI 5.0 MEDIUM

Authenticated user triggers the request (PR:L), network vector and low complexity hold, scope changes to internal systems (S:C), but the blind oracle leaks only reachability so C:L not C:H.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

2
Patch available
Oct 16, 2026 - 20:18 EUVD
CVE Published
Oct 16, 2026 - 19:21 cve.org
HIGH 7.7

DescriptionCVE.org

Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.10, passes an administrator-controlled AI provider URL directly to LiteLLM without applying the server's outbound-request SSRF checks when an authenticated user creates a Space, configures an AI provider with a URL targeting an internal address, and invokes an AI action. In cookbook/views/api.py, the affected AI actions call completion through TARGET/api/ai-import/ and api/ai-step-sort/ while bypassing safe_request. The attack works because the server connects to the supplied provider URL from each AI action and exposes connection success, refusal, or timeout as a blind network-reachability oracle. This can reach internal services, other hosts on the server network, and cloud metadata endpoints and map reachable internal hosts and ports. This issue is fixed in version 2.6.10.

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

Why It Matters

Tandoor Recipes, a recipe management platform, contains a high-severity vulnerability that allows authenticated users with Space creation privileges to map internal network resources and cloud metadata endpoints. This could expose sensitive internal systems and cloud credentials, enabling lateral movement and potential data breaches. Leadership should prioritize mitigation because the flaw bypasses existing outbound filtering and, with no public exploit identified at time of analysis, the risk is significant for organizations using the AI provider feature.

Business Impact: High
Compensating Controls

Disable AI provider configuration and related AI import features; enforce strict outbound firewall rules to block access to internal IPs and cloud metadata endpoints; restrict Space creation privileges to trusted users; monitor logs for anomalous outbound connections from the Tandoor Recipes server.

Threat Intelligence Overview

Prevalence
Low
self-hosted hobbyist recipe manager, minimal enterprise deployment footprint
Social Media
2
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

CVE-2025-23211 CRITICAL POC
9.9 Jan 28

Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve

CVE-2026-25991 HIGH POC
7.7 Feb 13

Tandoor Recipes prior to 2.5.1 contains a blind server-side request forgery vulnerability in the Cookmate recipe import

CVE-2025-57396 MEDIUM POC
6.5 Sep 19

Tandoor Recipes 2.0.0-alpha-1, fixed in 2.0.0-alpha-2, is vulnerable to privilege escalation. Rated medium severity (CVS

CVE-2024-0403 MEDIUM POC
6.5 Mar 01

Recipes version 1.5.10 allows arbitrary HTTP requests to be made through the server. Rated medium severity (CVSS 6.5), t

CVE-2022-23071 MEDIUM POC
6.5 Jun 19

In Recipes, versions 0.9.1 through 1.2.5 are vulnerable to Server Side Request Forgery (SSRF), in the “Import Recipe” fu

CVE-2026-33152 CRITICAL
9.1 Mar 26

Tandoor Recipes versions prior to 2.6.0 allow unlimited brute-force password guessing attacks against any known username

CVE-2026-25964 MEDIUM POC
4.9 Feb 13

Path traversal in Tandoor Recipes prior to 2.5.1 allows authenticated users with import permissions to read arbitrary fi

CVE-2026-35488 HIGH
8.1 Apr 07

Privilege escalation in Tandoor Recipes prior to version 2.6.4 allows authenticated users with read-only shared access t

CVE-2026-35045 HIGH
8.1 Apr 06

Authenticated users can modify and expose private recipes in Tandoor Recipes through broken object-level authorization i

CVE-2026-33149 HIGH
8.1 Mar 26

Tandoor Recipes versions through 2.5.3 permit Host header injection attacks that enable invite link poisoning, allowing

CVE-2026-61726 HIGH
8.1 Oct 16

Broken object-level authorization in Tandoor Recipes before 2.6.12 lets an authenticated member of the same Space, holdi

CVE-2026-33153 HIGH
7.7 Mar 26

Tandoor Recipes application versions prior to 2.6.0 expose complete database schema and access control logic through an

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy