Skip to main content

Tandoor Recipes CVE-2026-59962

| EUVDEUVD-2026-102949 MEDIUM
Improper Neutralization of Special Elements in Data Query Logic (CWE-943)
2026-10-16 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privileged user
  2. Exploit
    Submit crafted sort_order with __ FK traversal
  3. Execution
    Observe result-ordering oracle
  4. Impact
    Infer admin password hashes and status

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Query language parameterization
Exploitation Conditions

Requires an authenticated Tandoor Recipes account (PR:L) on a version prior to 2.6.10; no special non-default configuration is needed. The attacker must supply foreign-key traversal paths via the sort_order or order_field parameters in recipe search, RecipeBook, or stored CustomFilter ordering, reaching _finalize_ordering/order_by through the /api/recipe/ and /api/recipe-book/ endpoints. Exploitation is LIMITED by the need for valid credentials and by its oracle/inference nature - data is leaked indirectly through observable result ordering rather than returned directly, making extraction slow and iterative, and the pre-2.6.10 version constraint bounds the exposed population.

Impact

This is a genuine but moderate-priority information-disclosure flaw, best characterized as a high-CVSS-impact-but-constrained-reach issue. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, 6.5) is internally consistent with the description: exploitation is network-reachable and low-complexity, but requires an authenticated account (PR:L), and impact is confidentiality-only (C:H, I:N, A:N) via an ordering-oracle that leaks password hashes, email addresses, and administrator status from related User rows. No EPSS score, KEV listing, or public POC was supplied, so there is no evidence of active or at-scale exploitation; the only exploitation signal is the vendor-published GitHub Security Advisory (GHSA-4x57-2q4q-xwpp) and three fix commits confirming the bug is real and well-understood. The main factor raising priority is that the leaked data includes password hashes and admin flags, which can enable privilege escalation or offline cracking; the main factor lowering it is the authentication requirement and the oracle-based, inference-driven nature of the attack (noisy, slow, one value at a time). Note the CWE-943 and the 'Nosql Injection' tag are imprecise - this is a Django ORM relational-traversal leak, not NoSQL injection - so classify it as ORM/query-logic injection, not NoSQL.

Exploit ScenarioDerived

A logged-in Tandoor user (any low-privileged account) sends recipe-search, RecipeBook, or CustomFilter requests to /api/recipe/ or /api/recipe-book/ with crafted sort_order/order_field values containing double-underscore foreign-key paths (e.g. traversing to related User fields). By observing how results reorder under different ordering expressions, the attacker builds a boolean/ordering oracle to infer sensitive related-table values such as an administrator's password hash, email, and is_superuser status. No public exploit code was identified at time of analysis, though the fix commits clearly document the vulnerable code path.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Oct 16, 2026

Tandoor Recipes instances running versions prior to 2.6.10 let any authenticated user infer sensitive database values - including password hashes, email addresses, and administrator status - by supplying crafted sort_order or order_field values that Django's ORM resolves as double-underscore foreign-key traversal paths during recipe search and RecipeBook ordering. The exposure is scored 6.5 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, CWE-943), with confidentiality impact rated High but reach constrained by the need for valid credentials and the indirect, oracle-style nature of the leak. No public exploit code has been identified at time of analysis, and there is no confirmed active exploitation.

RemediationAI

Upgrade Tandoor Recipes to 2.6.10 or later - Vendor-released patch: 2.6.10 - which introduces strict ordering allowlists in cookbook/helper/recipe_search.py (ALLOWED_KEYS) and cookbook/views/api.py (ALLOWED_ORDER_FIELDS = {'id','name','order'}); the fix is delivered by commits 322696f618997e98f2d4c15ec64b9480735589f0, 382a976cc79635edc30aef84cb2b2b72eb8afd3c, and 82fd4e00f1387a1c466489989f2e94487149f7f4, and is documented in advisory GHSA-4x57-2q4q-xwpp with a release at https://github.com/TandoorRecipes/recipes/releases/tag/2.6.10. Where an immediate upgrade is not possible, compensate by fronting the application with a reverse proxy or WAF rule that rejects or strips sort_order and order_field values containing '__' on requests to /api/recipe/ and /api/recipe-book/ - note the trade-off that Django-filter also uses double underscores for legitimate filter lookups, so scope the rule narrowly to ordering parameters to avoid breaking normal filtering; alternatively, temporarily disable or restrict the search and RecipeBook ordering features and purge or freeze stored CustomFilter records that carry untrusted ordering values. Additionally, restrict API access to trusted authenticated accounts (the vector is PR:L, so only logged-in users can exploit it), audit accounts and rotate credentials if ordering-based probing is suspected, and review reverse-proxy/access logs for repeated ordering requests with traversal-style tokens against those two endpoints. Because the leak is inferential rather than direct, password hashes and email addresses cannot be recovered from a single request, but iterative ordering queries can reconstruct them, so treat any observed probing as a potential credential-disclosure event.

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

Tandoor Recipes (TandoorRecipes/recipes) is a Python/Django application for recipe management, meal planning, and shopping lists, exposed through endpoints such as /api/recipe/ and /api/recipe-book/. The root cause is CWE-943 (Improper Neutralization of Special Elements in Data Query Logic): user-controlled strings were passed directly into Django ORM order_by() calls. Django interprets a double underscore inside an ordering token as a related-table traversal (for example user__password or user__email), so an authenticated attacker could cause the backend to order result sets by columns belonging to joined User (or other related) tables. Because the ordering is observable through the returned API results, the attacker gains a boolean/ordering oracle that leaks values indirectly rather than returning them outright. Source evidence shows the vulnerable path in cookbook/helper/recipe_search.py (_sort_includes/_finalize_ordering, which previously appended arbitrary user-supplied keys instead of validating them) and in cookbook/views/api.py RecipeBookViewSet, where order_field was applied without an allowlist. The 2.6.10 fix introduces explicit allowlists - ALLOWED_KEYS for sort tokens ('name', 'rating', 'created_at', 'random', and their negations) and ALLOWED_ORDER_FIELDS = {'id', 'name', 'order'} - restricting ordering to a fixed, non-traversable set. Community tags label this 'NoSQL Injection,' but the actual mechanism is ORM ordering/traversal manipulation in a relational Django backend, not injection into a NoSQL datastore; the practical class is information disclosure through query-logic abuse.

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 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Network-reachable API with low complexity but requires a valid low-privileged account (PR:L); impact is confidentiality-only (C:H) since password hashes and admin data leak, with no write or availability effect.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/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
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 16, 2026 - 18:03 EUVD

DescriptionCVE.org

Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.10, passes unvalidated sort_order and order_field strings into Django ORM order_by() calls when an authenticated user supplies foreign-key traversal paths in recipe search, RecipeBook, or stored CustomFilter ordering values. Request processing uses _finalize_ordering and order_by through 8080/api/recipe/ and 8080/api/recipe-book/. The attack works because Django interprets double-underscore ordering fields as related-table traversal, and observable result ordering leaks values from related User fields. This can infer password hashes, email addresses, administrator status, and other related database values. This issue is fixed in version 2.6.10.

Threat Intelligence Overview

Prevalence
Low
self-hosted hobbyist recipe manager, niche homelab footprint, no enterprise deployment
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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

NoSQL injection exploits databases that don't use traditional SQL syntax-like MongoDB, CouchDB, or Redis-by manipulating queries through unsanitized user input.

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