{"id":"RUSTSEC-2026-0189","summary":"DNS rebinding vulnerability in rmcp Streamable HTTP server transport","details":"Prior to version 1.4.0, the `rmcp` crate's Streamable HTTP server transport did\nnot validate the incoming `Host` header.\n\nThis allowed a malicious public website, via a DNS rebinding attack, to send\nrequests to an MCP server running on the victim's loopback or private-network\ninterface.\n\nAn attacker who convinced a victim to visit a malicious page could enumerate and\ninvoke tools exposed by a locally running rmcp-based MCP server, read resources\nand prompts, and trigger side effects limited by the tools exposed by that\nserver.\n\nNon-HTTP transports such as stdio and child-process transports are not affected.\n\n## Patches\n\nThe issue was fixed in `rmcp` 1.4.0 by adding default loopback-only host\nallowlist validation for the Streamable HTTP server transport. Incoming HTTP\nrequests now validate the `Host` header and return HTTP 403 when the host is not\nallowed.\n\nUsers should upgrade to `rmcp \u003e= 1.4.0`.\n\n## Workarounds\n\nIf upgrading is not possible, place the MCP server behind a reverse proxy\nconfigured to reject requests whose `Host` header is not one of the expected\nhostnames. Do not bind the MCP server to `0.0.0.0` without such validation.","aliases":["CVE-2026-42559","GHSA-89vp-x53w-74fx","GHSA-fvh2-gm75-j4j7","RUSTSEC-2026-0140"],"modified":"2026-06-30T07:16:56Z","published":"2026-04-29T12:00:00Z","related":["GHSA-fvh2-gm75-j4j7","RUSTSEC-2026-0140"],"database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/rmcp"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2026-0189.html"},{"type":"ADVISORY","url":"https://github.com/modelcontextprotocol/rust-sdk/security/advisories/GHSA-89vp-x53w-74fx"},{"type":"WEB","url":"https://github.com/modelcontextprotocol/rust-sdk/pull/764"},{"type":"REPORT","url":"https://github.com/modelcontextprotocol/rust-sdk/issues/815"},{"type":"REPORT","url":"https://github.com/modelcontextprotocol/rust-sdk/issues/822"},{"type":"WEB","url":"https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#security-warning"}],"affected":[{"package":{"name":"rmcp","ecosystem":"crates.io","purl":"pkg:cargo/rmcp"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"1.4.0"}]}],"ecosystem_specific":{"affected_functions":null,"affects":{"os":[],"functions":[],"arch":[]}},"database_specific":{"categories":[],"cvss":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","informational":null,"source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0189.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"}]}