Description
mcp-fetch checks a fetch target against its SSRF guard without removing the brackets that surround an IPv6 literal. isSafeUrl reads the hostname from the parsed URL, which for a literal such as http://[::1]/ yields the bracketed string, and then tests it with net.isIP. That call returns zero for a bracketed value, so the branch holding the private-address checks is skipped entirely. The guard falls back to resolving the hostname, the bracketed string is not a resolvable name, no addresses are returned, and the target is reported safe. The HTTP client then strips the brackets and connects. Because the address may be given in IPv4-mapped form, the same path reaches any IPv4 target the loopback and private checks were meant to exclude, including link-local metadata endpoints. isPrivateIPv6 also has no case for the ::ffff: prefix, so the mapped form would still pass even if the brackets were removed. The fetch target is supplied as a tool argument, so an attacker who can influence what the model requests can read internal responses back into the model context.
Published: 2026-08-26
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

mcp‑fetch performs an SSRF guard that checks the hostname of a requested URL, but it incorrectly leaves IPv6 literals surrounded by brackets intact. A URL such as http://[::1]/ is parsed as a bracketed string, causing the isIP test to fail and the private‑address checks to be skipped. The guard then resolves the hostname, finds no routable address, and declares the target safe, after which the client strips the brackets and connects. This flaw permits an attacker who can influence the fetch target—through a tool argument or model input—to initiate requests to loopback, link‑local, and other private IP ranges that the guard was meant to block, exposing internal services or metadata endpoints. The vulnerability is a Server‑Side Request Forgery identified as CWE‑918.

Affected Systems

The issue affects the Kazuph mcp‑fetch package versions up through 1.6.3; any deployment using these or earlier versions and allowing external input to specify the fetch target is vulnerable. No other vendors or products are listed.

Risk and Exploitability

The CVSS score of 8.7 depicts high severity, and although the EPSS score is not available, the existence of the flaw and its ability to reach internal resources means the exploitation probability could be significant, especially in environments where the tool is exposed to untrusted input. The vulnerability is not currently listed in the CISA KEV catalog, suggesting that large‑scale exploitation has not yet been documented. The likely attack vector is an attacker controlling the fetch target argument to perform SSRF against internal addresses; without network restrictions, this can lead to confidential data leakage into the requesting process.

Generated by OpenCVE AI on August 26, 2026 at 11:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the mcp‑fetch package to a patched release that removes IPv6 brackets before the SSRF guard is applied; check the npm registry or GitHub issue tracker for the fix.
  • If a patch is not yet available, pre‑process any URLs by stripping surrounding brackets from IPv6 literals or by wrapping mcp‑fetch in a small sanitization layer that cleans the hostname before forwarding the request.
  • Apply network controls that delete outbound connectivity to private IP ranges (loopback, link‑local, RFC1918) from the machine or container running mcp‑fetch, thereby limiting the impact of any remaining SSRF capability.

Generated by OpenCVE AI on August 26, 2026 at 11:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 26 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 26 Aug 2026 10:15:00 +0000

Type Values Removed Values Added
Description mcp-fetch checks a fetch target against its SSRF guard without removing the brackets that surround an IPv6 literal. isSafeUrl reads the hostname from the parsed URL, which for a literal such as http://[::1]/ yields the bracketed string, and then tests it with net.isIP. That call returns zero for a bracketed value, so the branch holding the private-address checks is skipped entirely. The guard falls back to resolving the hostname, the bracketed string is not a resolvable name, no addresses are returned, and the target is reported safe. The HTTP client then strips the brackets and connects. Because the address may be given in IPv4-mapped form, the same path reaches any IPv4 target the loopback and private checks were meant to exclude, including link-local metadata endpoints. isPrivateIPv6 also has no case for the ::ffff: prefix, so the mapped form would still pass even if the brackets were removed. The fetch target is supplied as a tool argument, so an attacker who can influence what the model requests can read internal responses back into the model context.
Title mcp-fetch through 1.6.3 Server-Side Request Forgery via Unstripped IPv6 Literal Brackets
Weaknesses CWE-918
References
Metrics cvssV3_1

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

cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-26T12:05:24.996Z

Reserved: 2026-08-26T09:56:49.602Z

Link: CVE-2026-80347

cve-icon Vulnrichment

Updated: 2026-08-26T12:05:12.020Z

cve-icon NVD

Status : Received

Published: 2026-08-26T10:16:42.803

Modified: 2026-08-26T13:19:24.960

Link: CVE-2026-80347

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-26T11:30:05Z

Weaknesses
  • CWE-918

    Server-Side Request Forgery (SSRF)