Model Context Protocol Python SDK: client fetches server-specified $ref URLs when validating tool results
Model Context Protocol Python SDK: Client fetched server-chosen $ref URLs while validating tool results against output schemas
The Model Context Protocol Python SDK has published a security advisory (GHSA-rwrf-2pqf-9j8j, CVE-2026-116686): when its client validates call_tool results against the outputSchema declared by the server, it uses the jsonschema default resolver to fetch URLs pointed to by $ref that cannot be resolved locally, so a malicious MCP server can thereby make the client request http/https URLs from its own network position or read local files. The fetched content is used only as a schema and is not sent back to the server, but fetching is performed synchronously on the event loop and without a timeout, so a target that accepts the connection and then stays silent can freeze all sessions in the process.
Teams that use the MCP Python SDK as a client to call untrusted servers can use this to check their versions; the vulnerability can let a malicious server make the client request URLs or read local files.