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.
Published: 2026-08-05
Score: 5.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability exists in Mealie’s AsyncSafeTransport SSRF guard (mealie/pkgs/safehttp/transport.py). The application resolves the target hostname once and checks the resolved IP against private‑range rules, but then performs the outbound HTTP request using the original hostname, which causes the underlying async transport to re-resolve independently. This creates 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 actual 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 5.3 reflects a moderate severity vulnerability. EPSS < 1% 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 10, 2026 at 21:30 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 10, 2026 at 21:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Mon, 10 Aug 2026 12:00: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. 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.

Mon, 10 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
Title mealie: DNS-Rebinding TOCTOU in SSRF Guard Allows Internal Network and Cloud Metadata Access mealie - DNS-Rebinding TOCTOU in SSRF Guard Allows Internal Network and Cloud Metadata Access

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

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 05 Aug 2026 13:15:00 +0000

Type Values Removed Values Added
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'}

cvssV3_1

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


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-10T11:45:15.487Z

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

Link: CVE-2026-71210

cve-icon Vulnrichment

Updated: 2026-08-05T13:22:38.153Z

cve-icon NVD

Status : Received

Published: 2026-08-05T08:16:43.240

Modified: 2026-08-10T12:17:24.817

Link: CVE-2026-71210

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T21:45:03Z

Weaknesses
  • CWE-367

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