FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat.
Summary
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 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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| PrefectHQ | fastmcp | before 3.2.0 | 3.2.0 | Patch available | CNA |
| — | fastmcp (PyPI) | before 3.2.0 | 3.2.0 | Patch available | GHSA-vv7q-7jx5-f767 |
- fastmcp VendorPrefectHQ Affected before 3.2.0 Fixed in 3.2.0 Patch available CNA
- fastmcp (PyPI) Vendor— Affected before 3.2.0 Fixed in 3.2.0 Patch available GHSA-vv7q-7jx5-f767
Remediation
- Fix · CNA fastmcp (PrefectHQ) Fixed in 3.2.0
- Fix · GHSA-vv7q-7jx5-f767 fastmcp (PyPI) Fixed in 3.2.0 Advisory →
Red Hat 1 advisory
- RHSA-2026:36350 Released 2026-07-07 · Red Hat rating Importantsatellite/foreman-mcp-server-rhel9 container image available as a Technology Preview
- Red Hat Satellite 6.18 registry.redhat.io/satellite/foreman-mcp-server-rhel9
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Satellite 6.18 | Fixed | RHSA-2026:36350 |
Not affected: 1 product
- Red Hat OpenShift AI (RHOAI)
Timeline
- 2026-10-02 Threatist record created from CVE-2026-32871
- 2026-10-03 Alias added: GHSA-vv7q-7jx5-f767
References
Patch 2
Other 8
- https://github.com/PrefectHQ/fastmcp/releases/tag/v3.2.0
- https://access.redhat.com/errata/RHSA-2026:36350
- https://access.redhat.com/security/cve/CVE-2026-32871
- https://bugzilla.redhat.com/show_bug.cgi?id=2454434
- https://github.com/PrefectHQ/fastmcp
- https://github.com/pypa/advisory-database/tree/main/vulns/fastmcp/PYSEC-2026-338.yaml
- https://pypi.org/project/fastmcp
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-32871.json
More PrefectHQ vulnerabilities
- TI-2026-04695 Git Argument Injection in prefecthq/prefect CVSS 3.0CRITICAL 9.9
- TI-2026-03027 Authentication Bypass in prefecthq/prefect CVSS 3.0HIGH 7.5
- TI-2026-06805 PrefectHQ prefect WebSocket Endpoint in missing authentication CVSS 4.0MEDIUM 6.9
- TI-2026-06804 PrefectHQ prefect Health Check API health endswith improper authentication CVSS 4.0MEDIUM 6.9
- TI-2024-07590 CORS Misconfiguration in prefecthq/prefect CVSS 3.0HIGH 7.6
- TI-2026-06807 PrefectHQ prefect GitRepository Pull storage.py argument injection CVSS 4.0MEDIUM 5.3
Sources
- CVE-2026-32871 · CVE Program
- CVE-2026-32871 · NVD
- FIRST EPSS
- GHSA-vv7q-7jx5-f767 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-32871 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences