---
id: "CVE-2026-59970"
kind: "vulnerability"
aliases: ["CVE-2026-59970"]
title: "Tandoor Recipes: AI provider URL lets users probe internal network hosts"
severity: "high"
cvss: 7.7
epss: null
exploited: false
status: "open"
category: "ai-tooling"
products: []
ecosystems: []
tags: ["ai-provider", "ai-tooling", "litellm", "self-hosted", "tandoor-recipes"]
not_affected_if: ["no-ai-provider-configured", "version-2.6.10-or-later"]
published_at: "2026-10-16T20:17:23+00:00"
first_seen_at: "2026-10-23T21:57:14+00:00"
updated_at: "2026-10-25T03:14:19+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-59970", "first_seen_at": "2026-10-23T21:57:14+00:00"}]
---

# Tandoor Recipes: AI provider URL lets users probe internal network hosts

Tandoor Recipes passes the administrator-set AI provider URL straight to LiteLLM without its outbound-request SSRF checks, in the AI import and AI step-sort actions. An authenticated user can use those actions to see whether internal hosts and ports accept connections, including cloud metadata endpoints.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed Tandoor version; anything below `2.6.10` is affected.
- Check whether an AI provider with a custom URL is configured in the Tandoor admin or Space settings.

## Fix

- Upgrade Tandoor Recipes to `2.6.10` or later.
- Until upgraded, remove the AI provider URL or restrict AI features to trusted users (unknown whether this is sufficient).

## Timeline

- 2026-10-23T21:57:14+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-59970

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
