Skip to content

Commit 5e2f36f

Browse files
DaleSeodjc
authored andcommitted
Add advisory for rmcp DNS rebinding
1 parent 74a71c2 commit 5e2f36f

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

crates/rmcp/RUSTSEC-0000-0000.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
```toml
2+
[advisory]
3+
id = "RUSTSEC-0000-0000"
4+
package = "rmcp"
5+
date = "2026-04-29"
6+
url = "https://github.com/modelcontextprotocol/rust-sdk/security/advisories/GHSA-89vp-x53w-74fx"
7+
cvss = "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
8+
keywords = ["dns-rebinding", "mcp", "http"]
9+
aliases = ["CVE-2026-42559", "GHSA-89vp-x53w-74fx"]
10+
related = ["RUSTSEC-2026-0140", "GHSA-fvh2-gm75-j4j7"]
11+
references = [
12+
"https://github.com/modelcontextprotocol/rust-sdk/pull/764",
13+
"https://github.com/modelcontextprotocol/rust-sdk/issues/815",
14+
"https://github.com/modelcontextprotocol/rust-sdk/issues/822",
15+
"https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#security-warning",
16+
]
17+
18+
[versions]
19+
patched = [">= 1.4.0"]
20+
```
21+
22+
# DNS rebinding vulnerability in rmcp Streamable HTTP server transport
23+
24+
Prior to version 1.4.0, the `rmcp` crate's Streamable HTTP server transport did
25+
not validate the incoming `Host` header.
26+
27+
This allowed a malicious public website, via a DNS rebinding attack, to send
28+
requests to an MCP server running on the victim's loopback or private-network
29+
interface.
30+
31+
An attacker who convinced a victim to visit a malicious page could enumerate and
32+
invoke tools exposed by a locally running rmcp-based MCP server, read resources
33+
and prompts, and trigger side effects limited by the tools exposed by that
34+
server.
35+
36+
Non-HTTP transports such as stdio and child-process transports are not affected.
37+
38+
## Patches
39+
40+
The issue was fixed in `rmcp` 1.4.0 by adding default loopback-only host
41+
allowlist validation for the Streamable HTTP server transport. Incoming HTTP
42+
requests now validate the `Host` header and return HTTP 403 when the host is not
43+
allowed.
44+
45+
Users should upgrade to `rmcp >= 1.4.0`.
46+
47+
## Workarounds
48+
49+
If upgrading is not possible, place the MCP server behind a reverse proxy
50+
configured to reject requests whose `Host` header is not one of the expected
51+
hostnames. Do not bind the MCP server to `0.0.0.0` without such validation.

0 commit comments

Comments
 (0)