{"id":"CVE-2026-108594","state":"PUBLISHED","title":"Mealie 3.26.0 through 3.28.0 SSRF via OIDC Picture Claim Avatar Fetch","description":"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.","publishedAt":"2026-10-10T18:16:57.811Z","updatedAt":"2026-10-14T16:03:00.386Z","severity":{"score":2.3,"label":"Low","version":"4.0","vector":"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","source":"VulnCheck"},"assigner":"VulnCheck","products":["mealie-recipes mealie"],"affected":[{"vendor":"mealie-recipes","product":"mealie","packageURL":"pkg:github/mealie-recipes/mealie","defaultStatus":"unaffected","versions":[{"version":"3.26.0","status":"affected","lessThanOrEqual":"3.28.0","versionType":"semver"}],"repo":"https://github.com/mealie-recipes/mealie"}],"references":["https://hackmd.io/@haind/mealie-oidc-avatar-ssrf","https://github.com/mealie-recipes/mealie/blob/v3.28.0/mealie/core/security/providers/openid_provider.py#L170-L200","https://github.com/mealie-recipes/mealie/blob/v3.28.0/mealie/pkgs/safehttp/transport.py#L60-L160","https://github.com/mealie-recipes/mealie","https://www.vulncheck.com/advisories/mealie-3.26.0-through-3.28.0-ssrf-via-oidc-picture-claim-avatar-fetch"],"weaknesses":["CWE-918"],"ingestedAt":"2026-10-29T20:10:33.477Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/108xxx/CVE-2026-108594.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-108594","state":"PUBLISHED","datePublished":"2026-10-10T18:16:57.811Z","dateUpdated":"2026-10-14T16:03:00.386Z","assignerShortName":"VulnCheck","assignerOrgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateReserved":"2026-10-10T18:08:12.108Z"},"containers":{"cna":{"title":"Mealie 3.26.0 through 3.28.0 SSRF via OIDC Picture Claim Avatar Fetch","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"mealie-recipes","product":"mealie","packageURL":"pkg:github/mealie-recipes/mealie","defaultStatus":"unaffected","versions":[{"version":"3.26.0","status":"affected","lessThanOrEqual":"3.28.0","versionType":"semver"}],"repo":"https://github.com/mealie-recipes/mealie"}],"references":[{"url":"https://hackmd.io/@haind/mealie-oidc-avatar-ssrf","tags":["third-party-advisory"]},{"url":"https://github.com/mealie-recipes/mealie/blob/v3.28.0/mealie/core/security/providers/openid_provider.py#L170-L200","tags":["technical-description"]},{"url":"https://github.com/mealie-recipes/mealie/blob/v3.28.0/mealie/pkgs/safehttp/transport.py#L60-L160","tags":["technical-description"]},{"url":"https://github.com/mealie-recipes/mealie","tags":["product"]},{"url":"https://www.vulncheck.com/advisories/mealie-3.26.0-through-3.28.0-ssrf-via-oidc-picture-claim-avatar-fetch","name":"VulnCheck Advisory: Mealie 3.26.0 through 3.28.0 SSRF via OIDC Picture Claim Avatar Fetch","tags":["third-party-advisory"]}],"metrics":[{"format":"CVSS","cvssV4_0":{"version":"4.0","vectorString":"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","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"LOW","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"LOW","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":2.3,"baseSeverity":"LOW"}},{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:N/A:N","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"NONE","availabilityImpact":"NONE","baseScore":3.5,"baseSeverity":"LOW"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-918","lang":"en","description":"Server-Side Request Forgery (SSRF)","type":"CWE"}]}],"providerMetadata":{"shortName":"VulnCheck","orgId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","dateUpdated":"2026-10-10T18:16:57.811Z"},"datePublic":"2026-10-09T00:00:00.000Z","cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:mealie:mealie:*:*:*:*:*:*:*:*","versionStartIncluding":"3.26.0","versionEndIncluding":"3.28.0"}]}]}],"credits":[{"lang":"en","value":"HaiND from the Post and Telecommunication Institute of Technology","type":"finder"}],"x_generator":{"engine":"vulncheck-endgame"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-14T14:50:11.886611Z","id":"CVE-2026-108594","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-14T16:03:00.386Z"}}]}}}