Case · 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

Scope

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.

At a glance

Mechanism and trust boundary

  1. 01

    An attacker obtains a valid OAuth token issued for service A or another resource under a trusted issuer.

  2. 02

    An MCP server uses SDK bearer verification without checking that the token audience or resource indicator matches service B.

  3. 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

Link to claim
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

Link to claim
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

Link to claim

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

  1. Nov 7, 2026 · Published version · first publication · revision 227