Tandoor Recipes versions from 2.0.0 up to but not including 2.7.0 contain a server-side request forgery (SSRF) vulnerability in the Pestle importer. This flaw allows authenticated low-privileged users to craft malicious image URLs in Pestle JSON import files that cause the server to issue arbitrary GET requests. The vulnerability arises from a raw requests.get call that bypasses the application's centralized SSRF protections, enabling attackers to access internal-only endpoints, perform port and service discovery, and exfiltrate internal responses via stored recipe images.
CVE-2026-59970 is a Server-Side Request Forgery (SSRF) vulnerability in Tandoor Recipes prior to version 2.6.10. The application improperly passes an administrator-controlled AI provider URL directly to LiteLLM without applying SSRF protections. This allows an authenticated user to configure an AI provider URL targeting internal network addresses and invoke AI actions that connect to these URLs, bypassing safe request checks. The vulnerability enables blind network reachability detection of internal hosts and ports, including cloud metadata endpoints. The issue is fixed in version 2.6.10.
CVE-2026-61726 is an improper access control vulnerability in Tandoor Recipes prior to version 2.6.12. The flaw allows authenticated users with read and write API scope within a shared Space to read and modify private recipe steps of other members in the same Space. This occurs because the API filters only by Space membership and role-level checks, not by recipe ownership or sharing permissions. Cross-Space access is not affected. The issue is fixed in version 2.6.12.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.10, executes user-controlled Automation regular-expression patterns with Python re.sub() without complexity validation or an execution timeout when an authenticated user stores a catastrophic-backtracking regex and any user in the same Space imports a matching recipe. Request processing uses Automation.param_2, apply_regex_replace_automation, sub, api/recipe-from-source/. The attack works because the shared-Space automation engine evaluates the malicious pattern during recipe import and can occupy a Gunicorn worker until its request timeout. This can exhaust application worker slots and make the service unavailable to users. This issue is fixed in version 2.6.10.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.10, recipe utility endpoints retrieve same-Space Recipe objects without invoking the private-recipe owner or sharing permission when an authenticated member of a shared Space supplies another member's private recipe identifier to AI import, file, external-link, or share-link endpoints. Request processing uses api/ai-import/, api/get_recipe_file/, api/get_external_file_link/, api/share-link/, CustomRecipePermission. The attack works because the endpoints read private recipe files, send file bytes to the configured AI provider, or create and disclose external links without object-level authorization, and api/share-link/ can create a public link when Space sharing is enabled. This can expose private recipe files and sensitive uploaded content to another same-Space user and to configured external services. This issue is fixed in version 2.6.10.
Tandoor Recipes versions prior to 2.6.10 contain a vulnerability where user-supplied ordering parameters in database queries are improperly handled. This allows authenticated users to access related tables via Django ORM order_by calls, potentially exposing sensitive information such as password hashes, email addresses, and administrator status. The issue is fixed in version 2.6.10.
CVE-2026-59967 is an authorization bypass vulnerability in Tandoor Recipes prior to version 2.6.10. The flaw allows an authenticated member of a shared Space to access and delete another member's pending bookmarklet import by submitting the victim's bookmarklet identifier to the POST /api/recipe-from-source/ endpoint. This results in disclosure of private captured page content and destruction of the victim's pending import. The issue is fixed in version 2.6.10.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.5, a critical Denial of Service (DoS) vulnerability was in the recipe import functionality. This vulnerability allows an authenticated user to crash the server or make a significantly degrade its performance by uploading a large size ZIP file (ZIP Bomb). This vulnerability is fixed in 2.6.5.
CVE-2026-35489 is a high-severity vulnerability in Tandoor Recipes versions prior to 2.6.4. It involves the POST /api/food/{id}/shopping/ endpoint improperly handling user-supplied amount and unit data without validation. This can cause unhandled exceptions resulting in HTTP 500 errors and allows cross-space association of unit IDs, leading to potential leakage of foreign-key references across tenant boundaries. The issue is fixed in version 2.6.4.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.4, RecipeBookViewSet and RecipeBookEntryViewSet use CustomIsShared as an alternative permission class, but CustomIsShared.has_object_permission() returns True for all HTTP methods — including DELETE, PUT, and PATCH — without checking request.method in SAFE_METHODS. Any user who is in the shared list of a RecipeBook can delete or overwrite it, even though shared access is semantically read-only. This vulnerability is fixed in 2.6.4.
CVE-2026-35046 is a cross-site scripting (XSS) vulnerability in Tandoor Recipes versions prior to 2.6.4. Authenticated users can inject arbitrary <style> tags into recipe step instructions because the sanitizer used (bleach.clean()) explicitly allows the <style> tag. This results in unsanitized CSS being stored and served via the API. Clients that render these instructions as HTML without further sanitization may execute attacker-controlled CSS, potentially enabling UI redressing, phishing overlays, visual defacement, and CSS-based data exfiltration. The vulnerability is fixed in version 2.6.4.
CVE-2026-35045 is an authorization bypass vulnerability in Tandoor Recipes versions prior to 2.6.4. It affects the batch update API endpoint, allowing any authenticated user within a Space to modify any recipe in that Space, including private recipes owned by other users. This bypasses object-level authorization checks present in single-recipe endpoints, enabling unauthorized access and modification of private recipe data. The vulnerability is fixed in version 2.6.4.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. In versions prior to 2.6.0, Tandoor Recipes configures Django REST Framework with BasicAuthentication as one of the default authentication backends. The AllAuth rate limiting configuration (ACCOUNT_RATE_LIMITS: login: 5/m/ip) only applies to the HTML-based login endpoint at /accounts/login/. Any API endpoint that accepts authenticated requests can be targeted via Authorization: Basic headers with zero rate limiting, zero account lockout, and unlimited attempts. An attacker can perform high-speed password guessing against any known username. Version 2.6.0 patches the issue.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. In versions prior to 2.6.0, the Recipe API endpoint exposes a hidden `?debug=true` query parameter that returns the complete raw SQL query being executed, including all table names, column names, JOIN relationships, WHERE conditions (revealing access control logic), and multi-tenant space IDs. This parameter works even when Django's `DEBUG=False` (production mode) and is accessible to any authenticated user regardless of their privilege level. This allows a low-privilege attacker to map the entire database schema and reverse-engineer the authorization model. Version 2.6.0 patches the issue.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. In versions prior to 2.6.0, the FDC (USDA FoodData Central) search endpoint constructs an upstream API URL by directly interpolating the user-supplied `query` parameter into the URL string without URL-encoding. An attacker can inject additional URL parameters by including `&` characters in the query value. This allows overriding the API key, manipulating upstream query behavior, and causing server crashes (HTTP 500) via malformed requests — a Denial of Service condition. Version 2.6.0 patches the issue.
Tandoor Recipes versions prior to 2.6.0 do not strip EXIF metadata from uploaded WebP and GIF images. This leads to exposure of sensitive information such as GPS coordinates, camera model, timestamps, and software details to any user who can view the recipe images. The issue is fixed in version 2.6.0.
CVE-2026-28503 is an authorization bypass vulnerability in Tandoor Recipes versions prior to 2.6.0. The flaw exists in the SyncViewSet.query_synced_folder() function, which fetches Sync objects without properly restricting access by space. This allows an admin user in one space to trigger sync operations and view sync logs belonging to another space. The issue is fixed in version 2.6.0.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Versions up to and including 2.5.3 set ALLOWED_HOSTS = '*' by default, which causes Django to accept any value in the HTTP Host header without validation. The application uses request.build_absolute_uri() to generate absolute URLs in multiple contexts, including invite link emails, API pagination, and OpenAPI schema generation. An attacker who can send requests to the application with a crafted Host header can manipulate all server-generated absolute URLs. The most critical impact is invite link poisoning: when an admin creates an invite and the application sends the invite email, the link points to the attacker's server instead of the real application. When the victim clicks the link, the invite token is sent to the attacker, who can then use it at the real application. As of time of publication, it is unknown if a patched version is available.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.5.1, there is a Blind Server-Side Request Forgery (SSRF) vulnerability in the Cookmate recipe import feature of Tandoor Recipes. The application fails to validate the destination URL after following HTTP redirects, allowing any authenticated user (including standard users without administrative privileges) to force the server to connect to arbitrary internal or external resources. The vulnerability lies in cookbook/integration/cookmate.py, within the Cookmate integration class. This vulnerability can be leveraged to scan internal network ports, access cloud instance metadata (e.g., AWS/GCP Metadata Service), or disclose the server's real IP address. This vulnerability is fixed in 2.5.1.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.5.1, a Path Traversal vulnerability in the RecipeImport workflow of Tandoor Recipes allows authenticated users with import permissions to read arbitrary files on the server. This vulnerability stems from a lack of input validation in the file_path parameter and insufficient checks in the Local storage backend, enabling an attacker to bypass storage directory restrictions and access sensitive system files (e.g., /etc/passwd) or application configuration files (e.g., settings.py), potentially leading to full system compromise. This vulnerability is fixed in 2.5.1.