Prepared CVE ID request payloads for the six vulnerabilities disclosed through the mcp-witness disclosure track. The coordinated-disclosure embargo (2026-08-10) has passed and all six are publicly documented, so these are eligible for CVE assignment.
Status: all six submitted to MITRE CNA-LR (Vulnogram) on 2026-09-11; awaiting CVE ID assignment (typically days). Fill in the CAN tracking numbers and the assigned CVE IDs in the submission log below as they arrive.
| CVE | Package | CAN (tracking) | Assigned CVE ID | Status |
|---|---|---|---|---|
| A | mcp-server-fetch |
CAN-2026-2037396 | (pending review) | submitted 2026-09-11 |
| B | mcp-server-http-request |
CAN-2026-2037403 | (pending review) | submitted 2026-09-11 |
| C | mcp-streamablehttp-proxy |
CAN-2026-2037402 | (pending review) | submitted 2026-09-11 |
| D | mcp-fetch-streamablehttp-server |
CAN-2026-2037401 | (pending review) | submitted 2026-09-11 |
| E | fastmcp-http |
CAN-2026-2037400 | (pending review) | submitted 2026-09-11 |
| F | mcp-server-fetch-sse |
CAN-2026-2037399 | (pending review) | submitted 2026-09-11 |
Each entry below maps to the fields on the MITRE CVE request form.
The MITRE CNA of Last Resort (CNA-LR) uses the Vulnogram CVE Services portal. Flow:
didesle7@gmail.com.CAN-YYYY-####### tracking number (not yet a CVE ID). Click that CAN link in the ID column.Version field format (Vulnogram): for a package vulnerable in every release through the latest, set one affected product with version: "0", lessThanOrEqual: "<latest>", status: affected, versionType: custom (or semver/python if preferred). For a single-release package (e.g. mcp-server-http-request 0.1.0, mcp-server-fetch-sse 0.1.1), list that exact version with status: affected. The per-CVE “Affected versions” line below gives the range in prose; translate it to that structured form.
Reporter / discoverer credit for every entry: Dishant Desle (didesle7@gmail.com), https://github.com/desledishant10.
These lean deliberately conservative, consistent with the honest severity framing in the descriptions (DNS rebinding is a non-trivial delivery vector, so AC:H on the rebind-only paths; the SSRF impact is credential disclosure, so I:N unless the package also enables direct tool invocation). Vulnogram computes the numeric score from the vector; the CNA may adjust. Adjust or omit per your judgment.
| CVE | Product | Suggested CVSS 3.1 vector | Rationale |
|---|---|---|---|
| A | mcp-server-fetch |
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:N/A:N |
SSRF; AC:H (needs reachable IMDS + IMDSv2-optional/older + injectable agent); UI:R (agent processes attacker-influenced content); S:C + C:H (cloud IAM credential disclosure) |
| B | mcp-server-http-request |
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:N/A:N |
same SSRF class as A |
| C | mcp-streamablehttp-proxy |
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H |
rebind (AC:H, UI:R); worst-case fronts a command-execution server = full compromise (deployment-dependent; lower C/I/A if it fronts a read-only server) |
| D | mcp-fetch-streamablehttp-server |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N |
binds 0.0.0.0 with no auth, so any network host invokes tools directly (AC:L, UI:N); wrapped fetch adds SSRF (C:H); tool invocation (I:L) |
| E | fastmcp-http |
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N |
binds 0.0.0.0 with no auth, direct tool invocation (AC:L, UI:N); impact bounded by the exposed tools (conservative C:L/I:L) |
| F | mcp-server-fetch-sse |
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:N/A:N |
localhost bind, so rebind path (AC:H, UI:R); browser-driven credential disclosure (C:H) |
atrawog packages get separate CVEs because they are distinct PyPI products with distinct (though related) defects.Do not submit the editor’s default all-High vector (that scores 10.0 CRITICAL and is a large overclaim). Paste the per-CVE vector below, or set each metric to match it. In CVSS 4.0, environment-dependence (IMDSv2-optional, DNS-rebind timing) is AT:P (Attack Requirements: Present), and cross-system impact (cloud IAM, a fronted server) is the SC/SI/SA (Subsequent) metrics rather than Scope.
| CVE | Product | Suggested CVSS 4.0 vector | Note |
|---|---|---|---|
| A | mcp-server-fetch |
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N |
SSRF; AT:P (env-dependent IMDS); UI:P (agent processes injected content); SC:H (cloud IAM) |
| B | mcp-server-http-request |
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N |
same class as A |
| C | mcp-streamablehttp-proxy |
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
AT:P (rebind); worst-case fronts a shell server = full compromise (deployment-dependent; lower VC/VI/VA if read-only) |
| D | mcp-fetch-streamablehttp-server |
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:H/SI:N/SA:N |
0.0.0.0 direct reach (AT:N/UI:N); SSRF (VC:H, SC:H); tool invocation (VI:L) |
| E | fastmcp-http |
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N |
0.0.0.0 direct reach; tool-bounded impact, no cross-system (SC:N) |
| F | mcp-server-fetch-sse |
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N |
localhost rebind (AT:P/UI:P); browser-driven credential disclosure (SC:H) |
supplier wasn't found there (none of these maintainers is a CNA in the partner list; for CVE-A you may instead pick yes - didn't get CVE ID, since the disclosure was filed and closed “not planned”)CWE-918 Server-Side Request Forgery (SSRF))https://pypi.orgn; add one row: Affected? y, Version 0, <= Version <latest> (e.g. 2026.8.18, 0.2.0, 0.1.4), versionType custom (calendar/loose versions). For a single-release package, put the exact version (e.g. 0.1.0) in Version with Affected? y.externalDishant Desle, type finder (or reporter)mcp-server-fetchmodelcontextprotocol/servers)mcp-server-fetch (PyPI)fetch tool arguments an attacker can influence, e.g. via prompt injection)
mcp-server-fetch(the reference “fetch” Model Context Protocol server published inmodelcontextprotocol/servers) through 2026.8.18 does not validate the URL scheme or the resolved destination IP address of theurlargument to itsfetchtool before issuing an HTTP request. An MCP agent induced (for example, via prompt injection) to callfetchwith a URL targeting a link-local, loopback, or private address causes server-side request forgery. On cloud-hosted agent hosts this includes retrieval of the instance metadata service (e.g.http://169.254.169.254/latest/meta-data/iam/security-credentials/), yielding IAM credentials, as well as access to internal-only HTTP services. On hosts where IMDSv2 is required, retrieval of AWS instance credentials is mitigated at the host level because the server does not send the required token header; SSRF to other reserved-range and internal targets is not mitigated by that control.
tools/call to the fetch tool with an attacker-influenced URL argument.mcp-server-http-requestmcp-server-http-request (PyPI)
mcp-server-http-request0.1.0 exposes MCP tools that issue HTTP requests to a caller-supplied URL without validating the URL scheme or the resolved destination IP address. An MCP agent induced (for example, via prompt injection) to call these tools with a URL targeting a link-local, loopback, or private address causes server-side request forgery, including retrieval of cloud instance metadata (IAM credentials) on affected cloud hosts and access to internal-only HTTP services. The package performs no robots.txt pre-fetch or other outbound-request restriction. On hosts where IMDSv2 is required, retrieval of AWS instance credentials is mitigated at the host level because the tool does not send the required token header; SSRF to other reserved-range and internal targets is not mitigated by that control.
tools/call to an HTTP-request tool with an attacker-influenced URL argument.mcp-streamablehttp-proxyatrawog/mcp-oauth-gateway)mcp-streamablehttp-proxy (PyPI)
mcp-streamablehttp-proxythrough 0.2.0 exposes a Streamable HTTP MCP endpoint on a local interface and does not validate theOriginorHostheader of inbound requests; a code comment delegates CORS/origin handling to an external Traefik layer that is not present in the standalone package deployment. A web page loaded in the operator’s browser can therefore reach the local endpoint and invoke MCP tools by defeating the browser same-origin host check via DNS rebinding. Because the proxy forwards requests to an arbitrary stdio MCP server, successful exploitation yields unauthenticated invocation of whatever tools that fronted server exposes, up to remote code execution when it fronts a command-execution server. The server-side defect (accepting requests with a mismatched attackerOrigin/Host) is directly observable without the rebind; DNS rebinding is the browser delivery vector and must defeat browser DNS caching to land in practice.
mcp-fetch-streamablehttp-serveratrawog/mcp-oauth-gateway)mcp-fetch-streamablehttp-server (PyPI)
mcp-fetch-streamablehttp-serverthrough 0.2.0 binds its HTTP MCP endpoint to all interfaces (0.0.0.0) by default, does not validate theOriginorHostheader of inbound requests, and returnsAccess-Control-Allow-Origin: *on its responses. A web page can reach the endpoint cross-origin, or same-origin via DNS rebinding, and invoke MCP tools. Because the endpoint is bound to all interfaces without authentication, any host that can route to the port can also invoke the tools directly, independent of a browser. Because the package also wraps a URL-fetch tool that does not validate the URL scheme or resolved IP address, exploitation additionally enables server-side request forgery to internal services and, on hosts where IMDSv2 is not required, to cloud instance metadata (IAM credentials); on IMDSv2-required hosts the AWS-credential path is mitigated because the tool does not send the required token header. The server-side origin-validation defect is directly observable without the rebind; DNS rebinding is the browser delivery vector and must defeat browser DNS caching to land in practice.
fastmcp-httpARadRareness/mcp-registry)fastmcp-http (PyPI)
fastmcp-httpthrough 0.1.4 runs a Flask development server bound to all interfaces (0.0.0.0) with no authentication and no middleware, and does not validate theOriginorHostheader of inbound requests. Because the endpoint is bound to all interfaces without authentication, any host that can route to the port can invoke the exposed MCP tools directly, independent of a browser. A web page in the operator’s browser can additionally reach the endpoint by defeating the browser same-origin host check via DNS rebinding. The server-side defect (accepting requests with a mismatched attackerOrigin/Host) is directly observable without the rebind; DNS rebinding is the browser delivery vector and must defeat browser DNS caching to land in practice.
mcp-server-fetch-sseAnthropic, PBC in the wheel METADATA; maintainer of record jadamson@anthropic.com. (Author attribution on PyPI is unverified; may be inherited from a fork.)mcp-server-fetch-sse (PyPI)
mcp-server-fetch-sse0.1.1 exposes an aiohttp HTTP+SSE Model Context Protocol endpoint that does not validate theOriginorHostheader of inbound requests, and its wrapped fetch tool does not validate the URL scheme or resolved destination IP address. Via DNS rebinding, a web page in the operator’s browser can open an SSE session against the local endpoint and issue atools/callto the fetch tool targeting a cloud instance metadata address (e.g.http://169.254.169.254/), causing the server to return the metadata response to the page; on hosts where IMDSv2 is not required this yields IAM credentials, while on IMDSv2-required hosts the AWS-credential path is mitigated because the fetch tool does not send the required token header (SSRF to other reserved-range and internal targets remains). The full chain is browser-driven and requires no MCP agent or prompt injection. The server-side defects are directly observable without the rebind; DNS rebinding is the browser delivery vector and must defeat browser DNS caching to land in practice.