MCP proxy consent confuses different clients
A proxy reuses upstream consent in a way that grants a new MCP client access without the resource owner’s intended per-client consent.
Candidate CWE: CWE-441
Test hypothesis#
In an owned OAuth fixture, authorize client A, retain the browser’s normal upstream state, then initiate client B. Compare with a clean-browser baseline and inspect whether B receives authorized access before its own consent.
Evidence required#
Both registered client IDs, requested scopes, consent records, redirect binding and a synthetic resource-access result; redact codes and tokens.
Rule out false positives#
A shared upstream client ID alone is not proof; demonstrate the complete consent bypass conditions.
Playbook and command references#
- AI tools: input trust, execution identity and approvals — Prove when lower-trust content changes a protected tool action, then locate the missing authorization or consent boundary.
- Authentication, recovery, federation, and session lifecycle — Test registration, recovery, identity changes, invitations, SSO enforcement, and deprovisioning as one account state machine.
Find the associated command snippets
Referenced by these target playbooks#
Report checklist#
- Capture the affected version, configuration, identities, and object ownership.
- Preserve a valid baseline and a negative control.
- Reproduce the forbidden data access, action, or state change on controlled fixtures.
- Explain the intended security rule and why the observed behavior violates it.
- State prerequisites, uncertainty, cleanup, and the smallest demonstrated impact.
Conditional ATT&CK mapping#
No direct ATT&CK mapping selected. Record the weakness and demonstrated impact without forcing an adversary-behavior classification. See the mapping guide.