Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid Mealie account
-
DeliveryEnumerate/guess other user UUIDs
-
ExploitRequest /users/{id}/ratings and /favorites with victim ID
-
ExecutionServer skips ownership check
-
ImpactRead cross-user private recipe IDs, ratings, favorites
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires an authenticated Mealie account (PR:L) on the target instance; exploitation is remote over the network with no user interaction and works against default configurations of the ratings and favorites endpoints in versions before 3.21.0. The attacker supplies an arbitrary victim user ID (UUID) in the URL path. Limiting factors: the attacker must already have a valid account and needs to know or enumerate target user UUIDs; impact is read-only disclosure of ratings, favorite flags, and private recipe identifiers, with no write access or service impact. Notably, no shared group or household membership is required - cross-group access succeeds - which raises exposure on any multi-user instance. |
| Impact | This is a genuine but low-severity authorization flaw (IDOR/BOLA, CWE-639), not a high-CVSS emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L, no integrity or availability impact) accurately reflects a network-reachable, low-complexity but authenticated read-only information disclosure - an attacker must hold a valid account on the target Mealie instance. No EPSS score, no CISA KEV listing, and no public PoC are present in the input; per the precision rules this means no public exploit is identified at time of analysis, and there is no evidence of active exploitation. The exploitation itself is trivial (swap a user ID in the URL path), so the low-complexity rating is warranted, but impact is confined to leaking other users' recipe ratings, favorite flags, and private recipe identifiers across groups/households - no code execution, no data modification, no service impact. Signals are consistent and non-conflicting: a moderate CVSS from a real access-control bug, corroborated by source-code evidence (the fix adds ownership assertions) and a vendor patch. Bottom line: real, verifiable, patch-worthy on multi-tenant/shared instances, but a routine-priority information-disclosure issue rather than a critical one. One caveat: the input tags this as 'Authentication Bypass' whereas both the description and CWE-639 make clear it is an authorization (ownership-validation) bypass - verify tagging. |
| Exploit ScenarioDerived | An authenticated user on a shared Mealie instance (e.g., a household member, or a user in an entirely different group) sends a GET request to the ratings or favorites endpoint substituting another user's UUID into the URL path. The server returns that victim's private recipe identifiers, rating values, and favorite flags without checking ownership. No public exploit code is identified, but the attack requires only a trivial parameter substitution against a valid account. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 18, 2026
Mealie versions before 3.21.0 expose an insecure direct object reference (IDOR) in the per-user ratings and favorites endpoints, allowing any authenticated account holder to read another user's recipe ratings, favorite flags, and the private recipe identifiers attached to them by simply substituting a victim's user UUID in the request URL. Exploitation requires a valid account on the target instance but does not require the attacker to share a group or household with the victim - cross-group and cross-household reads succeed, which the upstream regression tests explicitly verify by expecting 403 once the fix is applied. The impact is read-only information disclosure (CVSS 3.1 5.3, AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N), with no write capability or service disruption, and no public exploit code identified at time of analysis; the practical limiting factor is that the attacker must know or enumerate target user UUIDs.
RemediationAI
Upgrade to Mealie 3.21.0 or later (release tag https://github.com/mealie-recipes/mealie/releases/tag/v3.21.0), which is the vendor-released fix resolving this issue; the change is delivered by PR https://github.com/mealie-recipes/mealie/pull/7903 and commit 6889101a760a457019276c10514e630660b3ed28, which adds an ownership assertion to the ratings and favorites handlers so cross-tenant reads return 403. No configuration toggle in affected versions enforces the missing ownership check, so patching is the only complete fix. Where immediate upgrade is not possible, compensating controls should focus on shrinking the authenticated attack surface: disable open user self-registration and remove or disable dormant accounts so that unvetted users cannot obtain the authenticated session (PR:L) required for exploitation - the trade-off is that this does not protect existing legitimate users from one another. Restrict network access to the Mealie instance through a reverse proxy with authentication, VPN, or an allow-list of trusted source addresses, which blocks remote (AV:N) reachability but adds an access management burden and breaks integrations that rely on direct API access. Because exploitation requires knowledge of target user UUIDs, avoid publishing user identifiers in logs, exports, or public-facing pages, and monitor API logs for sequential or repeated 200 responses on /users/<id>/ratings and /users/<id>/favorites from sessions other than the account owner. Note that no vendor-released patch data indicates an absence of a fix - the patch is available as noted above - and no public exploit code has been identified at time of analysis.
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
The flaw is a classic authorization bypass through a user-controlled key (CWE-639) in Mealie, a self-hosted recipe manager whose data model spans users, groups, and households. The vulnerable code lives in the per-user endpoints implemented in mealie/routes/users/ratings.py (roughly lines 44-52) and the supporting query layer in mealie/repos/repository_users.py (lines 82-88): the route resolves the user identifier taken directly from the URL path and performs the ratings/favorites lookup without confirming that the requested UUID matches the caller's identity or falls within their authorized group/household scope. The upstream fix in PR #7903 (commit 6889101a760a457019276c10514e630660b3ed28) inserts an assert_user_change_allowed(id, self.user, self.user) ownership check into the handler, causing cross-tenant requests to return HTTP 403. Because the underlying Python/FastAPI application relies on the path parameter as the object key and the repository layer returns records for that key without an ownership predicate, any authenticated session can pivot to arbitrary users simply by guessing or harvesting UUIDs; the exposed fields include rating values, favorite booleans, and private recipe identifiers. The CPE cpe:2.3:a:mealie-recipes:mealie:*:*:*:*:*:*:*:* confirms the whole product is affected across all builds prior to the 3.21.0 release.
Know when Mealie 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:L/VI:N/VA:N/SC:N/SI:N/SA:N
Authenticated account required (PR:L) but trivial to exploit over the network (AC:L); read-only leak of low-sensitivity data (C:L) with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Mealie before 3.21.0 fails to validate user ownership in the ratings and favorites endpoints, allowing authenticated attackers to read any user's recipe ratings and favorites by specifying arbitrary user IDs in the URL path. Attackers can access private recipe identifiers, rating values, and favorite flags belonging to other users across different groups or households.
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
Mealie 1.0.0beta3 contains an arbitrary file upload vulnerability which allows attackers to execute arbitrary code via a
A Broken Object Level Authorization vulnerability in the component /api/users/{user-id} of hay-kot mealie v2.2.0 allows
Mealie1.0.0beta3 was discovered to contain a Server-Side Template Injection vulnerability, which allows attackers to exe
Mealie is a self hosted recipe manager and meal planner. Rated medium severity (CVSS 6.5), this vulnerability is low att
A stored cross-site scripting (XSS) vulnerability in the recipe asset upload and media serving component in Mealie 3.3.1
Mealie 1.0.0beta3 employs weak password requirements which allows attackers to potentially gain unauthorized access to t
A Broken Object Level Authorization vulnerability in the component /api/users/{user-id} of hay-kot mealie v2.2.0 allows
A stored HTML injection vulnerability in the Recipe Notes rendering component in Mealie 3.3.1 allows remote authenticate
A stored cross-site scripting (XSS) vulnerability in Mealie v0.5.5 allows attackers to execute arbitrary web scripts or
A stored cross-site scripting (XSS) vulnerability in Mealie 1.0.0beta3 allows attackers to execute arbitrary web scripts
A Broken Object Level Authorization vulnerability in the component /households/permissions of hay-kot mealie v2.2.0 allo
Mealie is a self hosted recipe manager and meal planner. Rated medium severity (CVSS 6.5), this vulnerability is remotel
EUVD-2026-83026
GHSA-8wpj-9x79-phww
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB