Skip to content

Commit 98a1378

Browse files
committed
1 parent f25cd3d commit 98a1378

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

docs/specification/2025-06-18/basic/authorization.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,17 @@ Servers **MUST** return appropriate HTTP status codes for authorization errors:
290290

291291
Implementations **MUST** follow OAuth 2.1 security best practices as laid out in [OAuth 2.1 Section 7. "Security Considerations"](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-v2-1-12#name-security-considerations).
292292

293+
### Token Audience Binding and Validation
294+
295+
[RFC 8707](https://www.rfc-editor.org/rfc/rfc8707.html) Resource Indicators provide critical security benefits by binding tokens to their intended
296+
audiences **when the Authorization Server supports the capability**. To enable current and future adoption:
297+
298+
- MCP clients **MUST** include the `resource` parameter in authorization and token requests as specified in the [Resource Parameter Implementation](#resource-parameter-implementation) section
299+
- MCP servers **MUST** validate that tokens presented to them were specifically issued for their use
300+
301+
The [Security Best Practices document](/specification/draft/basic/security_best_practices#token-passthrough)
302+
outlines why token audience validation is crucial and why token passthrough is explicitly forbidden.
303+
293304
### Token Theft
294305

295306
Attackers who obtain tokens stored by the client, or tokens cached or logged on the server can access protected resources with

docs/specification/draft/basic/authorization.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ An attacker can gain unauthorized access or otherwise compromise a MCP server if
348348
This vulnerability has two critical dimensions:
349349

350350
1. **Audience validation failures.** When an MCP server doesn't verify that tokens were specifically intended for it (for example, via the audience claim, as mentioned in [RFC9068](https://www.rfc-editor.org/rfc/rfc9068.html)), it may accept tokens originally issued for other services. This breaks a fundamental OAuth security boundary, allowing attackers to reuse legitimate tokens across different services than intended.
351-
2. **Token passthrough.** If the MCP server not only accepts tokens with incorrect audiences but also forwards these unmodified tokens to downstream services, it can potentially cause the ["confused deputy" problem](#confused-deputy-problem), where the downstream API may incorrectly trust the token as if it came from the MCP server or assume the token was validated by the upstream API. See the [Token Passthrough section](/specification/draft/basic/security_best_practices#token-passthrough) of the Security Best Practices guide for additional details.
351+
2. **Token passthrough.** If the MCP server not only accepts tokens with incorrect audiences but also forwards these unmodified tokens to downstream services, it can potentially cause the ["confused deputy" problem](#confused-deputy-problem), where the downstream API may incorrectly trust the token as if it came from the MCP server or assume the token was validated by the upstream API. See the [Token Passthrough section](/specification/2025-06-18/basic/security_best_practices#token-passthrough) of the Security Best Practices guide for additional details.
352352

353353
MCP servers **MUST** validate access tokens before processing the request, ensuring the access token is issued specifically for the MCP server, and take all necessary steps to ensure no data is returned to unauthorized parties.
354354

0 commit comments

Comments
 (0)