{"id":"CVE-2026-93736","state":"PUBLISHED","title":"Mealie before 3.21.0 Information Disclosure via Ratings Endpoint","description":"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.","publishedAt":"2026-09-18T16:04:48.581Z","updatedAt":"2026-09-18T17:25:44.305Z","severity":{"score":5.3,"label":"Medium","version":"4.0","vector":"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","source":"VulnCheck"},"assigner":"VulnCheck","products":["mealie-recipes mealie"],"affected":[{"vendor":"mealie-recipes","product":"mealie","packageURL":"pkg:github/mealie-recipes/mealie","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.21.0","versionType":"semver"}],"repo":"https://github.com/mealie-recipes/mealie"}],"references":["https://github.com/mealie-recipes/mealie/issues/7909","https://github.com/mealie-recipes/mealie","https://github.com/mealie-recipes/mealie/blob/v3.20.1/mealie/routes/users/ratings.py#L44-L52","https://github.com/mealie-recipes/mealie/blob/v3.20.1/mealie/repos/repository_users.py#L82-L88","https://github.com/mealie-recipes/mealie/pull/7903","https://github.com/mealie-recipes/mealie/commit/6889101a760a457019276c10514e630660b3ed28","https://github.com/mealie-recipes/mealie/releases/tag/v3.21.0","https://www.vulncheck.com/advisories/mealie-before-3.21.0-information-disclosure-via-ratings-endpoint"],"weaknesses":["CWE-639"],"ingestedAt":"2026-10-29T20:13:34.582Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/93xxx/CVE-2026-93736.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-93736","state":"PUBLISHED","datePublished":"2026-09-18T16:04:48.581Z","dateUpdated":"2026-09-18T17:25:44.305Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-09-18T15:38:23.485Z"},"containers":{"cna":{"title":"Mealie before 3.21.0 Information Disclosure via Ratings Endpoint","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"mealie-recipes","product":"mealie","packageURL":"pkg:github/mealie-recipes/mealie","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"3.21.0","versionType":"semver"}],"repo":"https://github.com/mealie-recipes/mealie"}],"references":[{"url":"https://github.com/mealie-recipes/mealie/issues/7909","tags":["issue-tracking"],"name":"GitHub Issue #7909"},{"url":"https://github.com/mealie-recipes/mealie","tags":["product"]},{"url":"https://github.com/mealie-recipes/mealie/blob/v3.20.1/mealie/routes/users/ratings.py#L44-L52","tags":["technical-description"]},{"url":"https://github.com/mealie-recipes/mealie/blob/v3.20.1/mealie/repos/repository_users.py#L82-L88","tags":["technical-description"]},{"url":"https://github.com/mealie-recipes/mealie/pull/7903","tags":["patch","issue-tracking"]},{"url":"https://github.com/mealie-recipes/mealie/commit/6889101a760a457019276c10514e630660b3ed28","tags":["patch"]},{"url":"https://github.com/mealie-recipes/mealie/releases/tag/v3.21.0","tags":["release-notes"],"name":"mealie v3.21.0 Release Notes"},{"url":"https://www.vulncheck.com/advisories/mealie-before-3.21.0-information-disclosure-via-ratings-endpoint","name":"VulnCheck Advisory: Mealie before 3.21.0 Information Disclosure via Ratings Endpoint","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"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","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"LOW","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":5.3,"baseSeverity":"MEDIUM"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":4.3,"baseSeverity":"MEDIUM"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-639","lang":"en","description":"Authorization Bypass Through User-Controlled Key","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-09-18T16:04:48.581Z"},"datePublic":"2026-07-19T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:mealie:mealie:*:*:*:*:*:*:*:*","versionEndExcluding":"3.21.0"}]}]}],"credits":[{"lang":"en","value":"George Chen"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/mealie-recipes/mealie/issues/7909","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-09-18T17:25:36.834668Z","id":"CVE-2026-93736","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-09-18T17:25:44.305Z"}}]}}}