Case · DiggingBeagle record

MCP Python server accepted tokens minted for a different resource

An OAuth validation gap allowed an otherwise valid bearer token to be replayed across resource servers sharing an identity provider.

Scope

The outcome depends on how multiple services trust the issuer and whether protected resources enforce their own limits. No particular real customer compromise is established by the advisory.

Assessment profile

Assessment method
Setting
research demonstration
Exploitation
demonstrated
Evidence
Grade B
Remediation
patch available
AI role
AGAINST AI
Basis and provenance

The Python SDK advisory specifies tokens accepted for the wrong resource server when one issuer serves multiple applications and the verifier lacks its own audience check. Fixed versions expose an audience setting that remains off by default, so upgrading alone is insufficient. Impact is left ungraded because a calibrated 0-to-4 impact basis for actual affected targets is unavailable from these Claims.

Assessed Oct 28, 2026 using diggingbeagle.assessment/1.

At a glance

Claims & evidence

CLM-CP22-013-ACVE-2026-116684 records resource-server audience verification omissions in the Python MCP SDK.supported

Basis: reported finding

Link to claim
CLM-CP22-013-BThe advisory lists patched Python SDK versions 1.30.0 and 2.2.0, while warning that deployments may need to enable the resource validation option explicitly.supported

Basis: reported finding

Link to claim
CLM-ENRICH-20261028-010The fixed Python SDK versions introduce validate_token_resource, but it remains disabled unless the operator enables it and returns the token audience; merely upgrading does not enforce audience binding.supported

Basis: reported finding

Link to claim

Controls and mitigations

  • Require the intended resource in bearer-token validation and test cross-server reuse with a token valid only for an unrelated MCP endpoint.
  • On SDK 1.30.0 or 2.2.0, set validate_token_resource=True, match resource_server_url to the issuer audience, and return that audience as AccessToken.resource. Test rejection of tokens issued for sibling resource servers.

Unknowns and contradictions

  • Whether deployments turned on audience checks and separate per-tool scopes is unknown.

Sources and citation

Material revision history

  1. Oct 28, 2026 · Canonical change recorded · new in release · revision 199