Skip to content

MCP Token Passthrough / Audience Confusion (Confused Deputy)

mcp-token-audience-confusion is a high severity check in the ai category, written in python. Its source is templates/ai/mcp/mcp-token-audience-confusion.py in cert-x-gen-templates.

ACTIVE check. Detects an MCP server that authenticates requests yet accepts a Bearer token whose audience (aud) is not scoped for it - the token passthrough / confused-deputy anti-pattern the June 2025 MCP spec explicitly forbids

Field Value
Id mcp-token-audience-confusion
Severity high
Language python
Category ai
Author Bugb Research
Template version 1.0.0
Confidence 90
CVSS 8.1
Weakness CWE-287, CWE-441
Tags mcp, ai, agent, broken-auth, token-passthrough, audience-confusion, confused-deputy, oauth, intrusive, active, cwe-287, cwe-441
Target kind http
Oracle property

Declared in the header. cxg parses @references and then discards it, and nothing at scan time reads it, so this is the only place the links a template cites are surfaced.

To see what the copy on your machine says about itself, and to confirm it is installed at all:

Terminal window
cxg template info mcp-token-audience-confusion

The id it prints is the one to pass anywhere a template is selected. See cxg template for the rest of the subcommand, Scan a target for running a scan, and A match is not a finding for how to read what comes back.