fastmcp
🚀 The fast, Pythonic way to build MCP servers and clients.
Activity
- Latest release
- 1d ago
- Total releases
- 138
- Cadence
- ~2 days
- Last 12 months
- 68
Reach
- Stars
- 28.2k
Details
- License
- Apache-2.0
- First release
- Nov 30, 2024
| Version | Released | |
|---|---|---|
4.2.0a1
pre
| ||
4.1.4
patch
| ||
3.4.11
patch
| ||
4.1.3
patch
| ||
3.4.10
patch
| ||
4.1.2
patch
| ||
4.1.1
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.9
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.1.0
minor
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.11
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.8
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.10
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.9
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.8
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.7
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.6
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.5
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.4
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.3
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.2
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.1
patch
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0
major
2 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0b5
pre
1 CVE
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0b4
pre
1 CVE
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0b3
pre
1 CVE
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.7
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0b2
pre
1 CVE
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.6
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0b1
pre
1 CVE
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.5
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0a2
pre
1 CVE
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
4.0.0a1
pre
1 CVE
GHSA-vqqp-x5qm-5qp4
Oct 23, 2026
FastMCP MCP client wrappers construct M2M OAuth providers without issuer binding — client secret redirectable to attacker-advertised authorization server
5.9
/ 10
Medium
Network
High
None
None
Unchanged
High
None
None
Maintainer assessment and remediationThis report is accepted as a FastMCP credential-binding vulnerability. Affected versions of the OAuth client credentials providers do not expose the authorization-server issuer that owns pre-registered credentials. An untrusted or compromised MCP server can therefore advertise a different authorization server and receive the client secret or a signed assertion. Signing keys themselves remain local; assertion replayability depends on the assertion source and audience policy. Affected stable versions are 4.0.0–4.1.1 of The 4.1.2 fix adds Configuration required for protection: configure
Original reportSummaryfastmcp's ClientCredentialsOAuthProvider and PrivateKeyJWTOAuthProvider do not expose or validate OAuth issuer binding when connecting to MCP servers. A client secret configured for a legitimate authorization server can be transmitted to an attacker-controlled authorization server if the MCP server URL is attacker-supplied or compromised. This is the same vulnerability class as GHSA-qx49-fqc8-xw99 (Python MCP SDK) and GHSA-6qxp-vccf-f47h (TypeScript MCP SDK), applied to fastmcp's wrapper layer. DetailsWhen fastmcp connects to an MCP server with OAuth client credentials:
Affected code:
The underlying MCP SDK (mcp.client.auth.extensions.client_credentials) supports issuer= parameter, but fastmcp's wrappers neither accept nor forward it. Example vulnerable usage:
Proof of concept
The vulnerability exists because fastmcp does not validate that the authorization server advertised by the MCP server matches an expected issuer. ImpactSeverity: Medium-High Any application using fastmcp's M2M OAuth providers (ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider) to connect to user-supplied or untrusted MCP server URLs is vulnerable to credential disclosure and client impersonation. Affected parties:
Attack scenarios:
Affected versions
4.0.0
4.0.0a1
4.0.0a2
4.0.0b1
4.0.0b2
4.0.0b3
4.0.0b4
4.0.0b5
4.0.1
4.0.10
4.0.11
4.0.2
+ 9 more Show less
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.4
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.3
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.2
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.1
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.0
minor
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.4.0b1
pre
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.3.1
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.3.0
minor
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.3.0b2
pre
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.3.0b1
pre
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.2.4
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
2.14.7
patch
3 CVEs
CVE-2026-27124
PYSEC-2026-2476
GHSA-rww4-4w9c-7733
Jul 13, 2026
FastMCP: Missing Consent Verification in OAuth Proxy Callback Facilitates Confused Deputy Vulnerabilities
High
Network
Low
None
None
SummaryWhile testing the GitHubProvider OAuth integration, which allows authentication to a FastMCP MCP server via a FastMCP OAuthProxy using GitHub OAuth, it was discovered that the FastMCP OAuthProxy does not properly validate the user's consent upon receiving the authorization code from GitHub. In combination with GitHub’s behavior of skipping the consent page for previously authorized clients, this introduces a Confused Deputy vulnerability. Technical DetailsAn adversary can initiate an authentication flow by connecting their malicious MCP client to a benign MCP server using the GitHubProvider OAuth integration. During this flow, the attacker consents to connect their client to the MCP server and, at that point, can capture the GitHub authorization URL they are redirected to after granting consent. The attacker can then lure a victim, who is already logged into GitHub and has previously connected an MCP client to the benign MCP server, to open this captured URL. As a result, the victim’s browser is immediately redirected to the OAuthProxy’s callback endpoint, which does not correctly enforce that this browser has just given consent. The OAuthProxy then redirects the victim’s browser to the malicious MCP client’s callback URL with a valid authorization code. The attacker can exchange this code for an access token to the benign MCP server associated with the victim’s GitHub account, potentially gaining unauthorized access to resources tied to that account. Although this issue was verified in practice only for the GitHubProvider, a review of the source code, specifically the Skipping the consent page is not, by itself, a vulnerability on the IdP side. Many providers legitimately skip consent for first-party or previously authorized clients with the same scopes. In this case, the core problem lies in the OAuthProxy callback handler not correctly verifying that the browser issuing the callback request is the same one that has just given the required consent. Steps to reproduce
In a more realistic scenario, the malicious client could be a public MCP client or a simple web server that logs the received authorization code or token, which the attacker then uses to obtain the access token and connect to the MCP server as the victim. RecommendationTo mitigate this issue, the OAuthProxy should verify that the browser sending the authorization code has actually given consent for the corresponding client. This can be achieved by setting and validating a consent cookie or similar browser-bound state, as described in the mitigations section for this vulnerability in the MCP specification. Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2025-64340
PYSEC-2026-2475
GHSA-m8x7-r2rg-vh5g
Jul 13, 2026
FastMCP has a Command Injection vulnerability - Gemini CLI
6.7
/ 10
Medium
Local
High
Low
Required
Unchanged
High
High
High
Server names containing shell metacharacters (e.g., PoC:
On Windows, this opens Calculator via the Impact:
Arbitrary command execution with the privileges of the user running Patched in #3522 by validating server names to reject shell metacharacters. Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-32871
PYSEC-2026-338
GHSA-vv7q-7jx5-f767
Jun 29, 2026
FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability
Critical
Network
Low
None
None
Technical DescriptionThe A critical vulnerability exists in the Since Vulnerable CodeFile:
Root Cause
Proof of ConceptStep 1: Backend API SetupCreate
Step 2: Exploitation ScriptCreate
Expected Output
The attacker successfully accessed an endpoint not defined in the OpenAPI specification using the MCP provider's authentication credentials. Impact AssessmentSeverity Justification
Attack Scenarios
RemediationRecommended FixURL-encode all path parameter values before substitution to ensure reserved characters ( Updated code for
Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 01, 2026 · Source: OSV.dev | ||
3.2.3
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.2.2
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.2.1
patch
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
3.2.0
minor
1 CVE
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev | ||
2.14.6
patch
3 CVEs
CVE-2026-27124
PYSEC-2026-2476
GHSA-rww4-4w9c-7733
Jul 13, 2026
FastMCP: Missing Consent Verification in OAuth Proxy Callback Facilitates Confused Deputy Vulnerabilities
High
Network
Low
None
None
SummaryWhile testing the GitHubProvider OAuth integration, which allows authentication to a FastMCP MCP server via a FastMCP OAuthProxy using GitHub OAuth, it was discovered that the FastMCP OAuthProxy does not properly validate the user's consent upon receiving the authorization code from GitHub. In combination with GitHub’s behavior of skipping the consent page for previously authorized clients, this introduces a Confused Deputy vulnerability. Technical DetailsAn adversary can initiate an authentication flow by connecting their malicious MCP client to a benign MCP server using the GitHubProvider OAuth integration. During this flow, the attacker consents to connect their client to the MCP server and, at that point, can capture the GitHub authorization URL they are redirected to after granting consent. The attacker can then lure a victim, who is already logged into GitHub and has previously connected an MCP client to the benign MCP server, to open this captured URL. As a result, the victim’s browser is immediately redirected to the OAuthProxy’s callback endpoint, which does not correctly enforce that this browser has just given consent. The OAuthProxy then redirects the victim’s browser to the malicious MCP client’s callback URL with a valid authorization code. The attacker can exchange this code for an access token to the benign MCP server associated with the victim’s GitHub account, potentially gaining unauthorized access to resources tied to that account. Although this issue was verified in practice only for the GitHubProvider, a review of the source code, specifically the Skipping the consent page is not, by itself, a vulnerability on the IdP side. Many providers legitimately skip consent for first-party or previously authorized clients with the same scopes. In this case, the core problem lies in the OAuthProxy callback handler not correctly verifying that the browser issuing the callback request is the same one that has just given the required consent. Steps to reproduce
In a more realistic scenario, the malicious client could be a public MCP client or a simple web server that logs the received authorization code or token, which the attacker then uses to obtain the access token and connect to the MCP server as the victim. RecommendationTo mitigate this issue, the OAuthProxy should verify that the browser sending the authorization code has actually given consent for the corresponding client. This can be achieved by setting and validating a consent cookie or similar browser-bound state, as described in the mitigations section for this vulnerability in the MCP specification. Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2025-64340
PYSEC-2026-2475
GHSA-m8x7-r2rg-vh5g
Jul 13, 2026
FastMCP has a Command Injection vulnerability - Gemini CLI
6.7
/ 10
Medium
Local
High
Low
Required
Unchanged
High
High
High
Server names containing shell metacharacters (e.g., PoC:
On Windows, this opens Calculator via the Impact:
Arbitrary command execution with the privileges of the user running Patched in #3522 by validating server names to reject shell metacharacters. Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-32871
PYSEC-2026-338
GHSA-vv7q-7jx5-f767
Jun 29, 2026
FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability
Critical
Network
Low
None
None
Technical DescriptionThe A critical vulnerability exists in the Since Vulnerable CodeFile:
Root Cause
Proof of ConceptStep 1: Backend API SetupCreate
Step 2: Exploitation ScriptCreate
Expected Output
The attacker successfully accessed an endpoint not defined in the OpenAPI specification using the MCP provider's authentication credentials. Impact AssessmentSeverity Justification
Attack Scenarios
RemediationRecommended FixURL-encode all path parameter values before substitution to ensure reserved characters ( Updated code for
Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 01, 2026 · Source: OSV.dev | ||
3.1.1
patch
4 CVEs
GHSA-7xgj-8392-5q4r
Oct 23, 2026
FastMCP: Post-transform component authorization is skipped on direct calls
6.8
/ 10
Medium
Network
High
Low
None
Unchanged
High
High
None
Maintainer assessment and remediationThis report is accepted as a FastMCP authorization vulnerability. In supported configurations, a server transform can change the metadata used by a component's authorization policy. Direct lookups previously checked the original component but returned the transformed component without rechecking its policy. A client that knows the component identifier can invoke a tool or retrieve a resource or prompt that the configured policy denies. The fixes authorize the final transformed tools, resources, templates, and prompts. A denied concrete resource also shadows a matching resource template at its URI, preventing proxy templates from retrieving the same protected resource upstream. Authorized callers, authorized component versions, and templates for genuinely absent concrete resources remain supported. Affected stable release lines: FastMCP 3.0.0–3.4.9 and 4.0.0–4.1.1. The missing final authorization check is present in v3.0.0 history and was reproduced on v3.4.9 and v4.1.0. Both Fixes are available in FastMCP 3.4.10 and 4.1.2. Until upgrading, avoid overlapping proxy templates for protected resources and enforce the required authorization at the handler or server boundary rather than relying on a policy whose inputs are changed by a transform. Original reportPost-transform component authorization is skipped on direct callsSummaryFastMCP's direct component paths can return a transformed component before its applicable DetailsAttacker prerequisitesA server uses a supported provider, server, or session transform and a metadata-aware component Root causeListing applies transforms and then authorizes the transformed component. In the direct lookup path, FastMCP 4.1.0 applies the transform and returns the component without authorizing that final component. See Proof of conceptSave this as
Run it in an isolated environment:
Observed on 4.1.0 for a caller without the
ImpactA low-privilege caller can directly execute administrative tools hidden from listing, including their side effects and returned secrets. The same ordering flaw can expose protected resources, templates, or prompts. Recommended remediationApply component authorization to the final transformed component in every direct resolution/execution path, after all provider, server, and session transforms. Reuse one ordered resolver for list and direct operations so lookup never returns a transformed component before its applicable AI assistanceYes — OpenAI Codex assisted static analysis/PoC/writeup; reproduction was validated against stated version. Affected versions
3.0.0
3.0.1
3.0.2
3.1.0
3.1.1
3.2.0
3.2.1
3.2.2
3.2.3
3.2.4
3.3.0
3.3.0b1
+ 27 more Show less
3.3.0b2
3.3.1
3.4.0
3.4.0b1
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.4.6
3.4.7
3.4.8
3.4.9
4.0.0
4.0.1
4.0.10
4.0.11
4.0.2
4.0.3
4.0.4
4.0.5
4.0.6
4.0.7
4.0.8
4.0.9
4.1.0
4.1.1
Fixed in
3.4.10
4.1.2
References
Updated Oct 23, 2026 · Source: OSV.dev
CVE-2026-27124
PYSEC-2026-2476
GHSA-rww4-4w9c-7733
Jul 13, 2026
FastMCP: Missing Consent Verification in OAuth Proxy Callback Facilitates Confused Deputy Vulnerabilities
High
Network
Low
None
None
SummaryWhile testing the GitHubProvider OAuth integration, which allows authentication to a FastMCP MCP server via a FastMCP OAuthProxy using GitHub OAuth, it was discovered that the FastMCP OAuthProxy does not properly validate the user's consent upon receiving the authorization code from GitHub. In combination with GitHub’s behavior of skipping the consent page for previously authorized clients, this introduces a Confused Deputy vulnerability. Technical DetailsAn adversary can initiate an authentication flow by connecting their malicious MCP client to a benign MCP server using the GitHubProvider OAuth integration. During this flow, the attacker consents to connect their client to the MCP server and, at that point, can capture the GitHub authorization URL they are redirected to after granting consent. The attacker can then lure a victim, who is already logged into GitHub and has previously connected an MCP client to the benign MCP server, to open this captured URL. As a result, the victim’s browser is immediately redirected to the OAuthProxy’s callback endpoint, which does not correctly enforce that this browser has just given consent. The OAuthProxy then redirects the victim’s browser to the malicious MCP client’s callback URL with a valid authorization code. The attacker can exchange this code for an access token to the benign MCP server associated with the victim’s GitHub account, potentially gaining unauthorized access to resources tied to that account. Although this issue was verified in practice only for the GitHubProvider, a review of the source code, specifically the Skipping the consent page is not, by itself, a vulnerability on the IdP side. Many providers legitimately skip consent for first-party or previously authorized clients with the same scopes. In this case, the core problem lies in the OAuthProxy callback handler not correctly verifying that the browser issuing the callback request is the same one that has just given the required consent. Steps to reproduce
In a more realistic scenario, the malicious client could be a public MCP client or a simple web server that logs the received authorization code or token, which the attacker then uses to obtain the access token and connect to the MCP server as the victim. RecommendationTo mitigate this issue, the OAuthProxy should verify that the browser sending the authorization code has actually given consent for the corresponding client. This can be achieved by setting and validating a consent cookie or similar browser-bound state, as described in the mitigations section for this vulnerability in the MCP specification. Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2025-64340
PYSEC-2026-2475
GHSA-m8x7-r2rg-vh5g
Jul 13, 2026
FastMCP has a Command Injection vulnerability - Gemini CLI
6.7
/ 10
Medium
Local
High
Low
Required
Unchanged
High
High
High
Server names containing shell metacharacters (e.g., PoC:
On Windows, this opens Calculator via the Impact:
Arbitrary command execution with the privileges of the user running Patched in #3522 by validating server names to reject shell metacharacters. Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 13, 2026 · Source: OSV.dev
CVE-2026-32871
PYSEC-2026-338
GHSA-vv7q-7jx5-f767
Jun 29, 2026
FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability
Critical
Network
Low
None
None
Technical DescriptionThe A critical vulnerability exists in the Since Vulnerable CodeFile:
Root Cause
Proof of ConceptStep 1: Backend API SetupCreate
Step 2: Exploitation ScriptCreate
Expected Output
The attacker successfully accessed an endpoint not defined in the OpenAPI specification using the MCP provider's authentication credentials. Impact AssessmentSeverity Justification
Attack Scenarios
RemediationRecommended FixURL-encode all path parameter values before substitution to ensure reserved characters ( Updated code for
Affected versions
0.1.0
0.2.0
0.3.0
0.3.1
0.3.2
0.3.3
0.3.4
0.3.5
0.4.0
0.4.1
1.0
2.0.0
+ 79 more Show less
2.1.0
2.1.1
2.1.2
2.10.0
2.10.1
2.10.2
2.10.3
2.10.4
2.10.5
2.10.6
2.11.0
2.11.1
2.11.2
2.11.3
2.12.0
2.12.0rc1
2.12.1
2.12.2
2.12.3
2.12.4
2.12.5
2.13.0
2.13.0.1
2.13.0.2
2.13.0rc1
2.13.0rc2
2.13.0rc3
2.13.1
2.13.2
2.13.3
2.14.0
2.14.1
2.14.2
2.14.3
2.14.4
2.14.5
2.14.6
2.14.7
2.2.0
2.2.1
2.2.10
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.0
2.3.0rc1
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.4.0
2.5.0
2.5.1
2.5.2
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.8.1
2.9.0
2.9.1
2.9.2
3.0.0
3.0.0b1
3.0.0b2
3.0.0rc1
3.0.0rc2
3.0.0rc3
3.0.1
3.0.2
3.1.0
3.1.1
Fixed in
3.2.0
References
Updated Jul 01, 2026 · Source: OSV.dev |