Skip to main content

Mealie CVE-2026-108594

| EUVDEUVD-2026-96400 LOW
Server-Side Request Forgery (SSRF) (CWE-918)
2026-10-10 VulnCheck GHSA-rr7r-p99j-w4xq
2.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as OIDC user
  2. Delivery
    Set picture claim to internal host:port URL
  3. Exploit
    Trigger avatar fetch on login
  4. Execution
    Server issues GET to arbitrary IdP port
  5. Impact
    Probe internal services / port-scan IdP

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated OIDC user who can control their own identity-provider 'picture'/avatar claim, and requires Mealie to be configured to use OpenID Connect authentication (non-default for many installs). Exploitation is further bounded to the OIDC provider's own hostname/address: the flawed allowlist validates the provider hostname but ignores the port, so the attacker can only redirect fetches to arbitrary PORTS on the already-allowlisted provider address, not to fully arbitrary hosts. The fetch is a server-side GET issued on each login, so impact is limited to blind interaction/reconnaissance against services reachable at the provider's internal address; there is no indication response contents are returned to the attacker. Limiting factors: OIDC must be enabled, the attacker must hold a valid account on the trusted IdP, and the IdP address must co-locate reachable internal services.

Impact

This is a genuinely low-priority issue, and the signals are consistent rather than conflicting. The vendor-supplied CVSS 4.0 score is 2.3 (Low), reflecting authenticated access (PR:L), a present attack requirement (AT:P - the OIDC provider must expose reachable internal ports), and only limited confidentiality impact on both the vulnerable and a subsequent system (VC:L/SC:L) with no integrity or availability impact. Exploitation status is 'no public exploit identified at time of analysis' - this CVE is NOT in CISA KEV and no exploit-code flag is present in the input, so there is no evidence of active exploitation. A technical writeup exists on HackMD and the vendor (VulnCheck) published an advisory, which raises research visibility but is distinct from weaponized exploit code or in-the-wild use. EPSS is not provided in the input, so probabilistic exploitation likelihood cannot be quantified. The net picture: a real, confirmed SSRF primitive (CWE-918) but one that is blind (GET-only, no response body exfiltration indicated), authenticated, and bounded to the identity provider's address space - a plausible internal port-scan / reconnaissance tool against the IdP rather than a broad RCE or data-exfiltration threat. Patch by upgrading past the 3.26.0-3.28.0 affected range once a fixed release is confirmed.

Exploit ScenarioDerived

An authenticated OIDC user sets their identity-provider 'picture' claim to a URL pointing at an internal port on the provider's address (e.g. http://idp-internal:6379/), and on each subsequent login Mealie's avatar fetch issues a server-side GET to that host:port because the allowlist checks the hostname but ignores the port. The attacker can thereby probe or interact with internal services co-located with the IdP from the Mealie server's network position. No public exploit code is identified, though a technical writeup describing the flaw is publicly available.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 10, 2026

Server-side request forgery in Mealie 3.26.0 through 3.28.0 allows an authenticated OpenID Connect user to redirect the server's avatar-fetch routine to arbitrary ports on the configured identity provider's address, because the allowlist check validates only the provider hostname and ignores the port. The fetch fires as a server-side GET on each login, so the practical impact is limited to blind interaction and reconnaissance against services co-located on the already-trusted IdP host; the response body is not returned to the attacker. Exploitation requires Mealie to be configured for OIDC authentication (non-default for many deployments) and a valid account on the trusted IdP whose 'picture' claim the user controls, which is why this scores low (CVSS 4.0 base 2.3, independent assessment CVSS 3.1 4.x-equivalent severity). No public exploit code and no confirmed active exploitation were identified at time of analysis, and no vendor-released patch version is present in the available data.

RemediationAI

No vendor-released patch version is identified in the available data (status: no vendor-released patch identified at time of analysis), so remediation is currently compensating controls. The most direct fix is to correct the allowlist comparison in mealie/pkgs/safehttp/transport.py so it matches scheme, hostname AND port (and resolves/validates the final destination after redirects) before the avatar fetch, then redeploy the container image; note this requires maintaining a local fork until upstream ships a release. If patching is not feasible, disable remote avatar fetching for OIDC users - e.g. drop the 'picture' claim handling or store a local placeholder instead of fetching the URL - accepting that user avatars from the IdP will no longer populate automatically. Constrain the blast radius by enforcing egress rules on the Mealie host/container so it can only reach the IdP's expected port (typically 443), which turns the arbitrary-port probe into a no-op but has the side effect of breaking any legitimate auxiliary IdP endpoints your setup relies on. Where OIDC is not required, disable OIDC authentication entirely and rely on local accounts; this removes the attack surface completely but changes your login/identity story. Additionally, avoid hosting unrelated internal services on the same address as the trusted IdP, and treat the Mealie service account as untrusted for network purposes. Verify any manual fix against the advisory at https://www.vulncheck.com/advisories/mealie-3.26.0-through-3.28.0-ssrf-via-oidc-picture-claim-avatar-fetch and the analysis at https://hackmd.io/@haind/mealie-oidc-avatar-ssrf, and monitor https://github.com/mealie-recipes/mealie for a patched release.

Affected VersionsENISA

mealie 3.26.0 ≤3.28.0

Affected Packages

euvd mealie no fix

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 CWE-918 server-side request forgery arising from an incomplete allowlist comparison. Mealie's OIDC login flow reads the identity provider's 'picture' (avatar) claim and fetches that URL server-side so the image can be stored locally; the relevant code lives in mealie/core/security/providers/openid_provider.py (roughly lines 170-200) with the HTTP transport and URL-validation logic in mealie/pkgs/safehttp/transport.py (roughly lines 60-160). The validation step compares the destination hostname against the allowlisted identity provider hostname but drops the port from the comparison, so any port on the trusted provider address passes the check. The CPE entry cpe:2.3:a:mealie-recipes:mealie:*:*:*:*:*:*:*:* is version-wildcarded, but the advisory narrows the affected range to releases 3.26.0 through 3.28.0. Because the request is issued on each login and the attacker cannot see the response, this behaves as a blind SSRF primitive reachable over the network (AV:N) by a low-privileged authenticated user (PR:L) with no user interaction (UI:N) and a changed security scope (S:C, per the independent assessment) - useful mainly for port probing or triggering unauthenticated side effects on services bound to the provider's internal address rather than for data exfiltration.

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

Vendor (VulnCheck) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
vuln.today AI 5.0 MEDIUM

Authenticated OIDC user (PR:L) triggers a server-side request crossing a trust boundary into the IdP's internal space (S:C), yielding limited blind confidentiality only (C:L), no integrity/availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Mealie 3.26.0 through 3.28.0 contains a server-side request forgery vulnerability in the OpenID Connect avatar fetch that ignores ports when allowlisting the identity provider hostname. Authenticated OIDC users who control their picture URL can make the server send GET requests to arbitrary ports on the provider's internal address on each login.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
self-hosted homelab recipe manager, niche footprint, no enterprise scale
Data Quality
5 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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Low

Priority Score

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

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

More in Mealie

View all
CVE-2022-34613 CRITICAL POC
9.8 Aug 02

Mealie 1.0.0beta3 contains an arbitrary file upload vulnerability which allows attackers to execute arbitrary code via a

CVE-2024-55073 HIGH POC
7.6 Mar 27

A Broken Object Level Authorization vulnerability in the component /api/users/{user-id} of hay-kot mealie v2.2.0 allows

CVE-2022-34625 HIGH POC
7.2 Aug 02

Mealie1.0.0beta3 was discovered to contain a Server-Side Template Injection vulnerability, which allows attackers to exe

CVE-2024-31994 MEDIUM POC
6.5 Apr 19

Mealie is a self hosted recipe manager and meal planner. Rated medium severity (CVSS 6.5), this vulnerability is low att

CVE-2025-70297 MEDIUM POC
6.1 Feb 11

A stored cross-site scripting (XSS) vulnerability in the recipe asset upload and media serving component in Mealie 3.3.1

CVE-2022-34615 CRITICAL
9.8 Aug 19

Mealie 1.0.0beta3 employs weak password requirements which allows attackers to potentially gain unauthorized access to t

CVE-2024-55072 MEDIUM POC
5.4 Mar 27

A Broken Object Level Authorization vulnerability in the component /api/users/{user-id} of hay-kot mealie v2.2.0 allows

CVE-2025-70296 MEDIUM POC
5.4 Feb 11

A stored HTML injection vulnerability in the Recipe Notes rendering component in Mealie 3.3.1 allows remote authenticate

CVE-2022-34619 MEDIUM POC
5.4 Aug 02

A stored cross-site scripting (XSS) vulnerability in Mealie v0.5.5 allows attackers to execute arbitrary web scripts or

CVE-2022-34618 MEDIUM POC
5.4 Aug 02

A stored cross-site scripting (XSS) vulnerability in Mealie 1.0.0beta3 allows attackers to execute arbitrary web scripts

CVE-2024-55070 LOW POC
3.1 Mar 27

A Broken Object Level Authorization vulnerability in the component /households/permissions of hay-kot mealie v2.2.0 allo

CVE-2024-31992 MEDIUM
6.5 Apr 19

Mealie is a self hosted recipe manager and meal planner. Rated medium severity (CVSS 6.5), this vulnerability is remotel

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy