Description
Mealie's AsyncSafeTransport SSRF guard (mealie/pkgs/safehttp/transport.py) resolves a target hostname once, checks the resolved IP against private-range rules, but then issues the actual outbound HTTP request using the original hostname, which the underlying async transport re-resolves independently. Because the validated IP is never pinned to the actual connection, a DNS-rebinding attacker (returning a public IP to the validation lookup and a private/metadata IP to the real connection) defeats the guard. This is reachable by any authenticated user via /api/recipes/create/url, /api/recipes/test-scrape-url, and /api/recipes/{slug}/image, and the scraper reflects fetched content back to the requester, allowing an authenticated user to read internal HTTP services and cloud-metadata endpoints.
Published: 2026-08-05
Score: 6.5 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability exists in Mealie’s SSRF guard where the application resolves the target hostname once, validates the resolved IP against private‑range rules, but then issues the actual outbound request using the original hostname, causing a time‑of‑check to time‑of‑use (TOCTOU) condition. A DNS‑rebinding attacker can supply a public IP during the initial validation lookup while returning a private or cloud‑metadata IP for the real connection, thereby bypassing the guard. The flaw allows an authenticated user to use API endpoints such as /api/recipes/create/url, /api/recipes/test‑scrape‑url, and /api/recipes/{slug}/image to scrape external URLs, with the fetched content reflected back to the requester. Consequently, internal HTTP services and cloud‑metadata endpoints become discoverable and readable to authenticated users, exposing sensitive network information.

Affected Systems

The affected product is the mealie‑recipes Mealie application. No specific version information is listed in the advisory, meaning all deployed instances could be vulnerable until the vendor releases a fix. The repository at https://github.com/mealie-recipes/mealie contains the problematic code in pkgs/safehttp/transport.py.

Risk and Exploitability

The CVSS score of 6.5 reflects a moderate severity vulnerability. EPSS is not available and the flaw is not listed in the CISA KEV catalog, so the urgency is driven by the attacker’s need to be an authenticated user. Once authenticated, an attacker can use the provided API endpoints to trigger the DNS‑rebinding attack, retrieve data from internal services, and access cloud‑metadata endpoints, potentially exposing confidential infrastructure information. The direct attack vector is through API calls from an authenticated session, exploiting the TOCTOU flaw in the SSRF guard.

Generated by OpenCVE AI on August 5, 2026 at 08:37 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Mealie to the latest release that pins the resolved IP to the outbound connection in its SSRF guard.
  • Restrict or disable the API endpoints that perform external URL scraping (such as /api/recipes/create/url, /api/recipes/test-scrape-url, and /api/recipes/{slug}/image) for authenticated users until the patch is applied.
  • Implement firewall or network segmentation rules that block outbound connections from the Mealie service to internal IP ranges, including cloud‑metadata service addresses.

Generated by OpenCVE AI on August 5, 2026 at 08:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Wed, 05 Aug 2026 09:00:00 +0000

Type Values Removed Values Added
First Time appeared Mealie-recipes
Mealie-recipes mealie
Vendors & Products Mealie-recipes
Mealie-recipes mealie

Wed, 05 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description Mealie's AsyncSafeTransport SSRF guard (mealie/pkgs/safehttp/transport.py) resolves a target hostname once, checks the resolved IP against private-range rules, but then issues the actual outbound HTTP request using the original hostname, which the underlying async transport re-resolves independently. Because the validated IP is never pinned to the actual connection, a DNS-rebinding attacker (returning a public IP to the validation lookup and a private/metadata IP to the real connection) defeats the guard. This is reachable by any authenticated user via /api/recipes/create/url, /api/recipes/test-scrape-url, and /api/recipes/{slug}/image, and the scraper reflects fetched content back to the requester, allowing an authenticated user to read internal HTTP services and cloud-metadata endpoints.
Title mealie: DNS-Rebinding TOCTOU in SSRF Guard Allows Internal Network and Cloud Metadata Access
Weaknesses CWE-367
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N'}


Subscriptions

Mealie-recipes Mealie
cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-05T06:59:19.902Z

Reserved: 2026-08-05T06:56:15.799Z

Link: CVE-2026-71210

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T08:45:16Z

Weaknesses
  • CWE-367

    Time-of-check Time-of-use (TOCTOU) Race Condition