CVE-2026-32871 json
FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability
published 2026-03-31 7 mo ago modified 2026-10-27 12 d ago also GHSA-vv7q-7jx5-f767 , PYSEC-2026-338 , EUVD-2026-18250
- cvss
- 8.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.9%
- EPSS 0.9% chance of exploitation in 30 days, percentile 60%
- public exploits
- 0
- none known
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.
Patch / fix
- pypi fastmcp 3.2.0
- Red Hat Red Hat Satellite 6.18 1782739344
- github.com/PrefectHQ/fastmcp@40bdfb6 commit
- github.com/PrefectHQ/fastmcp#3507 pull request
- github.com/PrefectHQ/fastmcp/releases/tag/v3.2.0 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-32871 updated cvss 8.5
fastmcp: FastMCP: Authenticated Server-Side Request Forgery via path traversal in OpenAPI path parameters
-
Red Hat Satellite 6.18 satellite/foreman-mcp-server-rhel9 1782739344fixed: vendor fix RHSA-2026:36350
-
Red Hat OpenShift AI (RHOAI) rhoai/odh-mlflow-rhel9, rhoai/odh-pipeline-runtime-minimal-cpu-py312-rhel9, rhoai/odh-pipeline-runtime-pytorch-cuda-py312-rhel9, rhoai/odh-pipeline-runtime-pytorch-rocm-py312-rhel9, rhoai/odh-workbench-jupyter-minimal-cpu-py312-rhel9, rhoai/odh-workbench-jupyter-minimal-cuda-py312-rhel9, +13 morenot affected: component not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- total
- Assessed
- 7 mo ago
Exploit prediction
0.92% chance of exploitation in the next 30 days, higher than 60% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/PrefectHQ/fastmcp/security/advisories/GHSA-vv7q-7jx5-f767 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 10.0 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
| CISA ADP | 3.1 | 8.5 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CNA | 4.0 | 10.0 | CVSS: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 |
| NVD | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CNA | 3.1 | 8.5 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H |
| GitHub | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| OSV | 3.1 | 10.0 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | fastmcp | <3.2.0 |
3.2.0 |
Affected products
- PrefectHQ fastmcp
- Red Hat Red Hat Satellite 6.18
- Red Hat Red Hat OpenShift AI (RHOAI)
Classification
- Weakness
-
- CWE-918 Server-Side Request Forgery
References
-
github.com
/PrefectHQ/fastmcp/pull/3507
web, issue-tracking, patch
-
github.com
/PrefectHQ/fastmcp/commit/40bdfb6b1de0ce30609ee9ba5bb95ecd04a9fb71
web, patch
-
github.com
/PrefectHQ/fastmcp/security/advisories/GHSA-vv7q-7jx5-f767
exploit, web, mitigation, vendor-advisory
-
access.redhat.com
/errata/RHSA-2026:36350
vendor-advisory, web
-
github.com
/PrefectHQ/fastmcp/releases/tag/v3.2.0
web, product, release-notes
-
access.redhat.com
/security/cve/CVE-2026-32871
vdb-entry, web
-
bugzilla.redhat.com
/show_bug.cgi?id=2454434
issue-tracking, web
-
security.access.redhat.com
/data/csaf/v2/vex/2026/cve-2026-32871.json
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-32871
advisory
-
github.com
/PrefectHQ/fastmcp
package
-
github.com
/pypa/advisory-database/tree/main/vulns/fastmcp/PYSEC-2026-338.yaml
web
-
pypi.org
/project/fastmcp
web, package
-
github.com
/advisories/GHSA-vv7q-7jx5-f767
advisory
Sources
- CVE List CVE-2026-32871
- GitHub Advisory GHSA-vv7q-7jx5-f767
- NVD CVE-2026-32871
- OSV PYSEC-2026-338
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.