Cyber Resilience

CVE-2026-32871

SSRF in Jlowin Fastmcp ≤ 3.2.0

Public PoCSSRF
Published
02 April 2026
Modified
15 July 2026
Patch / advisory
CVSS Score v4 10.0
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.0091 57th percentile
Risk Priority 49 floored blend · peak EPSS

Summary

CVE-2026-32871 is a critical-severity SSRF (CWE-918) vulnerability in Jlowin Fastmcp. Its CVSS base score is 10.0 (Critical).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked in the top 43% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

This vulnerability is AI-related — categorised as AI Agent Protocols and Integrations; in the Protocol-Specific Risks risk domain.

The strongest mitigations our analysis identified map to AC-4 (Information Flow Enforcement) and SI-10 (Information Input Validation) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-32871 affects FastMCP, a Python library for building MCP servers and clients, specifically versions prior to 3.2.0. The vulnerability resides in the OpenAPIProvider component, which parses OpenAPI specifications to expose internal APIs to MCP clients. In the RequestDirector class's _build_url() method, path parameters (e.g., {user_id} in /api/v1/users/{user_id}) are directly substituted into URL templates without URL-encoding. The subsequent use of urllib.parse.urljoin() interprets ../ sequences as directory traversal, enabling attackers to escape the intended API prefix and target arbitrary backend endpoints.

Any network-accessible MCP client can exploit this vulnerability with low complexity and no privileges required (CVSS 10.0: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H). By controlling a path parameter, an attacker injects traversal sequences like ../ to redirect requests, resulting in authenticated server-side request forgery (SSRF, CWE-918). Requests carry the authorization headers configured in the MCP provider, allowing access to internal services that would otherwise be restricted.

The issue was addressed in FastMCP version 3.2.0, as detailed in the project's GitHub security advisory (GHSA-vv7q-7jx5-f767), release notes, associated pull request #3507, and patch commit 40bdfb6b1de0ce30609ee9ba5bb95ecd04a9fb71. Security practitioners should upgrade to 3.2.0 or later to mitigate the risk.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

FastMCP is a Pythonic way to build MCP servers and clients. Prior to version 3.2.0, the OpenAPIProvider in FastMCP exposes internal APIs to MCP clients by parsing OpenAPI specifications. The RequestDirector class is responsible for constructing HTTP requests to the…

more

backend service. A vulnerability exists in the _build_url() method. When an OpenAPI operation defines path parameters (e.g., /api/v1/users/{user_id}), the system directly substitutes parameter values into the URL template string without URL-encoding. Subsequently, urllib.parse.urljoin() resolves the final URL. Since urljoin() interprets ../ sequences as directory traversal, an attacker controlling a path parameter can perform path traversal attacks to escape the intended API prefix and access arbitrary backend endpoints. This results in authenticated SSRF, as requests are sent with the authorization headers configured in the MCP provider. This issue has been patched in version 3.2.0.

CWE(s)

AI Security AnalysisAI

AI Category
AI Agent Protocols and Integrations
Risk Domain
Protocol-Specific Risks
OWASP Top 10 for LLMs 2025
None mapped
Classification Reason
Matched keywords: mcp

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2025-64340Same product: Jlowin Fastmcp
CVE-2025-62801Same product: Jlowin Fastmcp
CVE-2025-62800Same product: Jlowin Fastmcp
CVE-2025-69196Same product: Jlowin Fastmcp
CVE-2026-27124Same product: Jlowin Fastmcp
CVE-2026-12774Shared CWE-918
CVE-2026-33060Shared CWE-918
CVE-2026-19374Shared CWE-918
CVE-2025-5276Shared CWE-918
CVE-2026-10274Shared CWE-918

Affected Assets

jlowin
fastmcp
≤ 3.2.0

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V1.3.6
  • V1.5.3
  • V5.3.2
  • V10.4.7

Mitigating Controls (NIST 800-53 r5) AI

Information flow enforcement can restrict which destinations the server is allowed to contact on behalf of users.

Input validation directly stops untrusted URLs from being accepted and fetched without destination checks.

Boundary protection limits the network reach of server-initiated requests even if SSRF occurs.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure development practices directly include input validation and destination allow-listing that prevent SSRF.

DE.CM-09 partial match
prevents

Runtime monitoring of web applications and services can detect anomalous outbound requests indicative of SSRF.

ID.RA-01 partial match
prevents

Vulnerability identification processes can discover and record SSRF flaws in web applications.

PR.IR-01 partial match
prevents

Network segmentation and egress controls can limit the damage from successful SSRF requests.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Operational threat data describing SSRF campaigns can be used to tighten outbound-request allow-lists and detection rules before attackers exploit them.

References