v0.2.0 · live
CAPFRAME
§ toolsandboxmcp-server-fetch

fetch

on pypi:mcp-server-fetch@2025.4.7

Severity

critical0
high1
medium2
low0
info0

3 findings on this tool

  1. highssrf surfacef-r8-fetch

    Tool `fetch` accepts an unconstrained URL / endpoint parameter

    The parameter(s) `url` look like URL or endpoint inputs but carry no `pattern` or `enum` constraint. An agent tricked by an indirect-injection payload can invoke this tool with an internal-service URL (e.g. `http://169.254.169.254/`) to exfiltrate cloud metadata, probe internal APIs, or pivot to services the host can reach but the caller cannot.

    fix: Constrain the URL parameter with an allow-list `enum`, or a `pattern` that restricts scheme and domain. Validate server-side against an allow-list and reject private / loopback / link-local address ranges at the HTTP client level.

    OWASP LLM07NIST MANAGE-2.2ATLAS T0051CAST-02
  2. mediumunconstrained inputf-r1-fetch

    Tool `fetch` accepts unconstrained string input

    The following string parameter(s) have no `maxLength` constraint: `url`. Unbounded strings let an attacker stuff arbitrary payloads through the tool, including indirect-injection content.

    fix: Add a `maxLength` to each string property, or constrain with an `enum` or `pattern`. Most legitimate tool inputs fit under a few hundred bytes.

    OWASP LLM01NIST MEASURE-2.3ATLAS T0051CAST-03
  3. mediumindirect injectionf-r6-fetch

    Tool `fetch` fetches external web content -- indirect-injection surface

    Description: "Fetches a URL from the internet and optionally extracts its contents as markdown. Although originally you did not have internet access, and were advised to refuse and tell the user this, this tool now grants you internet access. Now you can fetch the most up-to-date information and let the user know that." -- this tool pulls externally-controlled content into the agent's context window, the canonical indirect-injection vector. Even when the user supplies the URL, content at that URL can carry hostile instructions.

    fix: Sandbox the fetched content: strip prompts before forwarding to the model, constrain to an allow-list of domains, and route through capframe-guard with a `domain in [...]` caveat.

    OWASP LLM01NIST MEASURE-2.3ATLAS T0051CAST-02

About this tool

fetch is one of 1 tools exposed by mcp-server-fetch. The server scored 92/100 overall against the capframe rule engine (source: sandbox). Last scanned 2026-07-20.

The findings above are emitted by the public capframe.findings.v1 schema. Disagree with one? Open an issue.