The official MCP TypeScript SDK accepted OAuth bearer tokens intended for a different resource when an application omitted the optional expected-resource audience validator. GHSA-rvq5-wwqv-78pq documents audience confusion and its validation guidance. Updating a library without configuring the validator does not establish that an application now enforces…
Inspect the ClaimsCase · DiggingBeagle record
MCP TypeScript SDK accepted OAuth tokens for the wrong resource without opt-in checks
The official MCP TypeScript SDK accepted OAuth bearer tokens intended for a different resource when an application omitted the optional expected-resource audience validator. GHSA-rvq5-wwqv-78pq documents audience confusion and its validation guidance.
Public disclosure: Nov 5, 2026
Reported security vulnerability; exploitation prerequisites and tested version scope matter. No real-world exploitation is established unless separately reported.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade C
- Remediation
- mitigation available
- AI role
- AGAINST AI
Basis and provenance
research demonstration; demonstrated. The cited primary disclosure supports the specific sequence and boundaries described here: An attacker obtains a valid OAuth token issued for service A or another resource under a trusted issuer. The evidence does not independently establish consequences beyond the record's supported outcome; a numerical impact band cannot be justified from the available evidence. Evidence grade C reflects the source attribution and independent verification limits.
Assessed Nov 7, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-DB07-138-OUTCOME · CLM-DB07-138-MECHANISM · CLM-ENR-DB07-035-MCP-SDK-AUDIENCE-FIX-VERSIONS · Advisory: Official MCP TypeScript SDK accepts wrong OAuth resource audience unless opt-in validator configured
At a glance
Reject resource tokens whose issuer, audience and resource indicator do not match the executing MCP server.
Read the implicationsToken must be valid for other service under shared issuer; no real cross-resource reuse reported.
Limits and uncertaintyFull account
The official MCP TypeScript SDK accepted OAuth bearer tokens intended for a different resource when an application omitted the optional expected-resource audience validator.
GHSA-rvq5-wwqv-78pq documents audience confusion and its validation guidance. Updating a library without configuring the validator does not establish that an application now enforces audience binding.
A syntactically valid OAuth bearer token is not sufficient authorization for a particular MCP resource. The official TypeScript SDK's bearer middleware accepted tokens signed by a recognized issuer even when an application omitted expected-resource audience validation, permitting tokens minted for a different service to be replayed where resource claims were not checked. The failure requires tokens issued within a relevant trust configuration; it does not mean arbitrary strings authenticate. This Case is distinct from other SDK implementations and from individual MCP applications that separately enforce audience. Updating a dependency is only part of remediation if the server must explicitly configure the resource indicator and validator.
A signed bearer token can be valid for one resource and still be unauthorized for the MCP server that receives it. The failure is not a broken cryptographic signature; it is a missing resource-audience comparison at the server boundary. Clients and servers must agree on the intended audience and reject tokens for different resources even when an issuer is trusted. The pack also contains separate local-RPC approval and AgentScope identity failures, but neither is evidence that this SDK issue was exploited in those systems.
Mechanism and trust boundary
- 01
An attacker obtains a valid OAuth token issued for service A or another resource under a trusted issuer.
- 02
An MCP server uses SDK bearer verification without checking that the token audience or resource indicator matches service B.
- 03
The middleware accepts the wrong-resource token and exposes MCP methods under authority not explicitly granted for that resource.
Claims & evidence
CLM-DB07-138-OUTCOMEGHSA-rvq5-wwqv-78pq documents audience confusion and its validation guidance. Updating a library without configuring the validator does not establish that an application now enforces audience binding.supported
Basis: reported finding
- supportsAdvisory: Official MCP TypeScript SDK accepts wrong OAuth resource audience unless opt-in validator configuredprimary disclosure
GHSA-rvq5-wwqv-78pq; resource validation option and exploit conditions
CLM-DB07-138-MECHANISMThe official MCP TypeScript SDK accepted OAuth bearer tokens intended for a different resource when an application omitted the optional expected-resource audience validator.supported
Basis: reported finding
- supportsAdvisory: Official MCP TypeScript SDK accepts wrong OAuth resource audience unless opt-in validator configuredprimary disclosure
GHSA-rvq5-wwqv-78pq; resource validation option and exploit conditions
CLM-ENR-DB07-035-MCP-SDK-AUDIENCE-FIX-VERSIONSThe MCP SDK advisory identifies patched packages including @modelcontextprotocol/sdk 1.32.0, @modelcontextprotocol/server 2.3.0, @modelcontextprotocol/express 2.0.2, and server-legacy 2.3.1. Resource audience enforcement still requires applications to configure expectedResource and use AuthInfo.resource correctly.supported
Basis: reported finding
- supportsAdvisory: Official MCP TypeScript SDK accepts wrong OAuth resource audience unless opt-in validator configuredprimary disclosure
GHSA-rvq5-wwqv-78pq: fixed packages and expectedResource/AuthInfo.resource guidance
Implications
Reject resource tokens whose issuer, audience and resource indicator do not match the executing MCP server.
Unknowns and contradictions
- Token must be valid for other service under shared issuer; no real cross-resource reuse reported.
Sources and citation
Material revision history
- Nov 7, 2026 · Published version · first publication · revision 227