CVE-2026-116686
Medium · 6.5CVSS
6.5
EPSS
0.3%
Published
Oct 27, 2026
CISA due date
—
Cloudanix analysis
A flaw in a popular Python library for AI tool connections lets a malicious server trick client software into fetching web addresses or reading local files and can freeze the software entirely.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- SSRF
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
ClientSession and related classes in the Model Context Protocol Python SDK resolve $ref values in server-provided outputSchema documents using jsonschema's default resolver, enabling synchronous outbound HTTP/HTTPS requests and local filesystem reads without timeouts or sandboxing, which can also block the event loop.
Why it matters to the business
Attackers controlling a server can force clients to make blind network requests or read local files and can cause denial of service by stalling all active sessions; the flaw affects a widely used SDK for AI tool integrations with low but non-zero exploitation probability.
How an attack unfolds
An attacker hosts a malicious Model Context Protocol server that returns an outputSchema containing an unresolved $ref pointing to an attacker-controlled URL or local file path; when a client connects and validates the schema, the resolver synchronously fetches the reference, leaking data or causing resource exhaustion before the fixed versions.
How to fix it
Upgrade the Model Context Protocol Python SDK to version 1.30.0 or 2.2.0 or later; until then, avoid connecting to untrusted servers and consider patching jsonschema usage to use a safe resolver with timeouts and disabled network/file access.
How to confirm the fix worked
Confirm the installed package version is 1.30.0 or 2.2.0 or newer; test by sending a schema containing an external $ref and verifying no outbound requests or file reads occur and that the event loop remains responsive.
Typical attack path
- Attacker deploys a rogue MCP server advertising a crafted outputSchema with external or file $ref
- Victim client initiates a session and requests tool definitions
- Schema validation triggers jsonschema resolver on the event loop
- Resolver performs blind HTTP/HTTPS request or local file read
- Session stalls due to synchronous blocking without timeout
How to detect it
Review Python application logs and network telemetry for unexpected outbound HTTP requests or file reads initiated during schema validation in MCP client code; look for synchronous blocking patterns in event-loop threads around schema processing.
What your security team should do
- Immediately inventory all deployments of the Model Context Protocol Python SDK and schedule upgrades to 1.30.0 or 2.2.0
- Block outbound connections from client environments to untrusted MCP servers
- Monitor for unusual file access or network activity originating from Python processes handling MCP sessions
The record
The Model Context Protocol Python SDK is the official Python SDK for Model Context Protocol servers and clients. From 1.10.0 until 1.30.0 and 2.2.0, ClientSession, ClientSessionGroup, and Client tool calls validate server-declared outputSchema documents with jsonschema's default resolver, causing an unresolved $ref value to fetch an HTTP, HTTPS, or file URL from the client's network and filesystem context. A server can trigger blind requests or local-file reads and can stall every session in the process because resolution runs synchronously on the event loop without a timeout. This issue is fixed in versions 1.30.0 and 2.2.0.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-63184 Refitter is a tool for generating a C# REST API client using the Refit library. CWE-918
- CVE-2026-119343 Stirling-PDF is a locally hosted web application that facilitates various operations on… CWE-918
- CVE-2026-119342 Stirling-PDF is a locally hosted web application that facilitates various operations on… CWE-918
- CVE-2026-62284 OSAC operator is a Kubernetes operator. CWE-918
- CVE-2026-55598 PinePods is a complete, self-hosted podcast management system written in Rust. CWE-918
- CVE-2026-116252 pgAdmin 4's materialized view refresh passed the target database's name to psql's… CWE-918
- CVE-2026-61840 Quest Bot is an opensource Discord Bot. CWE-918
- CVE-2026-119712 PipesHub before 0.10.0 contains a server-side request forgery vulnerability in… CWE-918