Skip to content
Heist/ feed
Back to feed
High

mcp-use Inspector Proxy Server-Side Request Forgery via Caller-Supplied Target URL

Type: advisorySources: OSV

The proxy middleware in mcp-use's inspector forwards requests to a destination the caller names. mountMcpProxy in libraries/typescript/packages/inspector/src/server/proxy/mcp-proxy.ts read the target from the X-Target-URL header or the __mcp_target parameter and proxied to it without inspecting the host, so loopback, link-local and private addresses were all accepted, as were names that resolve to them, and the validation was not reapplied to a redirect the destination returned. A caller could therefore make the server issue requests to addresses reachable only from the host it runs on and read the responses. The current code calls isSafeProxyTarget, which checks the resolved address against private, loopback and link-local ranges before proxying and bounds the number of redirects followed.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-81091
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 07:35 UTC · Revision 1

Source evidence

mcp-use Inspector Proxy Server-Side Request Forgery via Caller-Supplied Target URL

core-osv · Original source

Published 27 Aug 2026, 14:50 UTC

The proxy middleware in mcp-use's inspector forwards requests to a destination the caller names. mountMcpProxy in libraries/typescript/packages/inspector/src/server/proxy/mcp-proxy.ts read the target from the X-Target-URL header or the __mcp_target parameter and proxied to it without inspecting the host, so loopback, link-local and private addresses were all accepted, as were names that resolve to them, and the validation was not reapplied to a redirect the destination returned. A caller could therefore make the server issue requests to addresses reachable only from the host it runs on and read the responses. The current code calls isSafeProxyTarget, which checks the resolved address against private, loopback and link-local ranges before proxying and bounds the number of redirects followed.

osv:CVE-2026-81091
Complete source record
{
  "id": "d63f8673c81b658032a0d414d8e10e4b3b56dc236a4fa28bdb5a16d6ec5e2582",
  "url": "https://osv.dev/vulnerability/CVE-2026-81091",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "mcp-use Inspector Proxy Server-Side Request Forgery via Caller-Supplied Target URL",
    "summary": "The proxy middleware in mcp-use's inspector forwards requests to a destination the caller names. mountMcpProxy in libraries/typescript/packages/inspector/src/server/proxy/mcp-proxy.ts read the target from the X-Target-URL header or the __mcp_target parameter and proxied to it without inspecting the host, so loopback, link-local and private addresses were all accepted, as were names that resolve to them, and the validation was not reapplied to a redirect the destination returned. A caller could therefore make the server issue requests to addresses reachable only from the host it runs on and read the responses. The current code calls isSafeProxyTarget, which checks the resolved address against private, loopback and link-local ranges before proxying and bounds the number of redirects followed.",
    "evidence": "osv:CVE-2026-81091",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-81091",
      "aliases": [
        "CVE-2026-81091",
        "GHSA-f2jg-rm2x-hc5p"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "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"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/mcp-use/mcp-use",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "last_affected": "2c8940263e4a0c118c6f584af7dbd7afdae09fcf"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "last_affected": "2.3.2"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  }
                ]
              }
            }
          ],
          "versions": [
            "mcp-use@2.3.2",
            "@mcp-use/inspector@20.3.1",
            "@mcp-use/client@2.2.0",
            "@mcp-use/cli@4.1.6",
            "@mcp-use/agent@2.0.9",
            "mcp-use@2.3.1",
            "@mcp-use/inspector@20.3.0",
            "mcp-use@2.3.0",
            "@mcp-use/inspector@20.2.5",
            "@mcp-use/agent@2.0.8",
            "mcp-use@2.2.4",
            "@mcp-use/inspector@20.2.4",
            "@mcp-use/client@2.1.5",
            "@mcp-use/cli@4.1.5",
            "@mcp-use/agent@2.0.7",
            "mcp-use@2.2.0",
            "create-mcp-use-app@2.0.4",
            "@mcp-use/inspector@20.2.0",
            "@mcp-use/client@2.1.2",
            "@mcp-use/cli@4.1.2",
            "@mcp-use/agent@2.0.4",
            "mcp-use@2.2.3",
            "@mcp-use/inspector@20.2.3",
            "mcp-use@2.2.2",
            "@mcp-use/inspector@20.2.2",
            "@mcp-use/client@2.1.4",
            "@mcp-use/cli@4.1.4",
            "@mcp-use/agent@2.0.6",
            "mcp-use@2.2.1",
            "@mcp-use/inspector@20.2.1",
            "@mcp-use/client@2.1.3",
            "@mcp-use/cli@4.1.3",
            "@mcp-use/agent@2.0.5",
            "mcp-use@2.1.1",
            "create-mcp-use-app@2.0.3",
            "@mcp-use/inspector@20.1.1",
            "@mcp-use/client@2.1.1",
            "@mcp-use/cli@4.1.1",
            "@mcp-use/agent@2.0.3",
            "mcp-use@2.1.0",
            "create-mcp-use-app@2.0.2",
            "@mcp-use/tunnel@0.2.0",
            "@mcp-use/inspector@20.1.0",
            "@mcp-use/client@2.1.0",
            "@mcp-use/cli@4.1.0",
            "@mcp-use/agent@2.0.2",
            "mcp-use@2.0.1",
            "create-mcp-use-app@2.0.1",
            "@mcp-use/inspector@20.0.1",
            "@mcp-use/client@2.0.1",
            "@mcp-use/cli@4.0.1",
            "@mcp-use/agent@2.0.1",
            "mcp-use@2.0.4",
            "@mcp-use/inspector@20.0.4",
            "mcp-use@2.0.0",
            "create-mcp-use-app@2.0.0",
            "@mcp-use/inspector@20.0.0",
            "@mcp-use/client@2.0.0",
            "@mcp-use/cli@4.0.0",
            "@mcp-use/agent@2.0.0",
            "mcp-use@2.0.3",
            "@mcp-use/inspector@20.0.3",
            "mcp-use@1.34.3",
            "@mcp-use/inspector@12.0.3",
            "@mcp-use/cli@3.6.4",
            "mcp-use@1.34.2",
            "@mcp-use/inspector@12.0.2",
            "@mcp-use/cli@3.6.3",
            "mcp-use@1.34.1",
            "@mcp-use/inspector@12.0.1",
            "@mcp-use/cli@3.6.2",
            "mcp-use@1.34.0",
            "@mcp-use/inspector@12.0.0",
            "@mcp-use/cli@3.6.1",
            "mcp-use@1.33.0",
            "create-mcp-use-app@0.14.17",
            "@mcp-use/inspector@11.0.0",
            "@mcp-use/cli@3.6.0",
            "mcp-use@1.32.1",
            "create-mcp-use-app@0.14.16",
            "@mcp-use/inspector@10.0.1",
            "@mcp-use/cli@3.5.2",
            "mcp-use@1.32.0",
            "@mcp-use/inspector@10.0.0",
            "@mcp-use/cli@3.5.1",
            "mcp-use@1.31.1",
            "@mcp-use/inspector@9.0.1",
            "@mcp-use/cli@3.5.0",
            "mcp-use@1.31.0",
            "@mcp-use/inspector@9.0.0",
            "@mcp-use/cli@3.4.2",
            "mcp-use@1.30.2",
            "@mcp-use/inspector@8.0.2",
            "@mcp-use/cli@3.4.1",
            "mcp-use@1.30.1",
            "@mcp-use/inspector@8.0.1",
            "@mcp-use/cli@3.4.0",
            "mcp-use@1.30.0",
            "create-mcp-use-app@0.14.15",
            "@mcp-use/inspector@8.0.0",
            "@mcp-use/cli@3.3.2",
            "python-v1.7.0",
            "python-v1.6.0",
            "python-v1.5.2",
            "python-v1.5.1",
            "mcp-use@1.10.6",
            "create-mcp-use-app@0.8.0",
            "@mcp-use/inspector@0.12.6",
            "@mcp-use/cli@2.5.6",
            "v1.5.0",
            "python-v1.5.0",
            "python-v1.4.2",
            "python-v1.4.1",
            "python-v1.4.0",
            "python-v1.3.14",
            "mcp-use@1.1.0",
            "create-mcp-use-app@0.4.0",
            "@mcp-use/inspector@0.4.0",
            "@mcp-use/cli@2.1.12",
            "python-v1.3.13"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-81091.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.859174551Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81091.json",
        "https://github.com/mcp-use/mcp-use/security/advisories/GHSA-f2jg-rm2x-hc5p",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-81091",
        "https://www.vulncheck.com/advisories/mcp-use-inspector-proxy-server-side-request-forgery-via-caller-supplied-target-url",
        "https://github.com/mcp-use/mcp-use"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-918"
        ],
        "cna_assigner": "VulnCheck",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81091.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-81091",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 493411,
  "published_at": "2026-08-27T14:50:32.568+00:00"
}