Skip to main content

MCP TypeScript SDK: Server bearer authentication accepted tokens issued for another service (CVE-2026-111771)

0
Medium
Published: 10/20/2026 (10/20/2026, 19:43:36 UTC)
Source: GCVE Database
Product: @modelcontextprotocol/sdk

Description

The MCP TypeScript SDK versions prior to specified patched releases accept bearer tokens issued for other services due to lack of audience (aud) validation in server-side authentication. This allows tokens valid for one service to be accepted by another MCP server using the SDK, if the authorization server issues tokens for multiple services. The issue affects multiple MCP SDK and server packages in versions before 1.32.0, 2.3.0, 2.0.2, and 2.3.1 respectively. A fix is available that adds an optional expectedResource setting to enforce audience validation, which must be enabled explicitly. Without enabling this setting or applying a custom audience check, the vulnerability remains exploitable.

CVSS v3.1

Score 6.8medium

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N

Affected software

npmghsa
@modelcontextprotocol/sdk
Affected versions
>=1.6.0 <1.32.0
npmghsa
@modelcontextprotocol/server
Affected versions
>=2.0.0 <2.3.0
npmghsa
@modelcontextprotocol/express
Affected versions
>=2.0.0 <2.0.2
npmghsa
@modelcontextprotocol/server-legacy
Affected versions
>=2.0.0 <2.3.1

Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.

AI-Powered Analysis

Machine-generated threat intelligence

AILast updated: 10/20/2026, 22:43:37 UTC

Technical Analysis

In affected MCP TypeScript SDK and server packages, server-side bearer authentication does not verify that the token's audience matches the server, allowing tokens issued for other services by the same authorization server to be accepted. This occurs when using requireBearerAuth() or verifyBearerToken() without an audience check in verifyAccessToken(). The vulnerability affects @modelcontextprotocol/sdk versions 1.6.0 through 1.31.0, @modelcontextprotocol/server 2.0.0 through 2.2.0, @modelcontextprotocol/express 2.0.0 through 2.0.1, and @modelcontextprotocol/server-legacy 2.0.0 through 2.3.0. The fix involves upgrading to versions 1.32.0+ for sdk, 2.3.0+ for server, 2.0.2+ for express, and 2.3.1+ for server-legacy, and enabling the expectedResource audience check by passing the expected audience URL to requireBearerAuth(). Without enabling this setting, the fix does not enforce audience validation. As a workaround, users can reject tokens with unexpected audiences inside verifyAccessToken() on any version.

Potential Impact

An attacker with a valid token for another service issued by the same authorization server can gain unauthorized access to the MCP server using the vulnerable SDK, potentially leading to unauthorized access and privilege escalation. The vulnerability impacts confidentiality and integrity by allowing acceptance of tokens not intended for the server. There is no indication of availability impact. The CVSS score is 6.8 (medium severity) with high impact on confidentiality and integrity, requiring low privileges and high attack complexity.

Mitigation Recommendations

A patch is available in the specified versions: upgrade to @modelcontextprotocol/sdk 1.32.0 or later, @modelcontextprotocol/server 2.3.0 or later, @modelcontextprotocol/express 2.0.2 or later, and @modelcontextprotocol/server-legacy 2.3.1 or later. After upgrading, enable the audience check by passing the expectedResource URL to requireBearerAuth(). Without enabling this setting, the fix does not enforce audience validation. If upgrading is not possible immediately, implement a manual check inside verifyAccessToken() to reject tokens whose aud claim does not include the expected audience. This manual mitigation closes the issue on all versions.

Pro Console: star threats, build custom feeds, automate alerts via Slack, email & webhooks.Upgrade to Pro

Technical Details

Gcve Source
db.gcve.eu
Osv Id
GHSA-rvq5-wwqv-78pq
Osv Schema Version
1.4.0
Aliases
["CVE-2026-111771"]
Ecosystems
["npm"]
Database Specific Severity
MODERATE
Cvss Version
3.1

Threat ID: 6ad7ec492cdf04f6566ba0ae

Added to database: 10/20/2026, 22:33:45 UTC

Last enriched: 10/20/2026, 22:43:37 UTC

Last updated: 10/20/2026, 22:43:37 UTC

Views: 4

Community Reviews

0 reviews

Crowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.

Sort by
Loading community insights…

Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.

Actions

PRO

Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.

Please log in to the Console to use AI analysis features.

Need more coverage?

Upgrade to Pro Console for AI refresh and higher limits.

For incident response and remediation, OffSeq services can help resolve threats faster.

Latest Threats

Breach by OffSeqOFFSEQFRIENDS — 25% OFF

Check if your credentials are on the dark web

Instant breach scanning across billions of leaked records. Free tier available.

Scan now
OffSeq TrainingCredly Certified

Lead Pen Test Professional

Technical5-day eLearningPECB Accredited
View courses