MCP accepts a token for another resource
A protected MCP resource accepts a token that was not issued for that resource.
Candidate CWE: CWE-287
Test hypothesis#
Use local issuer fixtures to compare a correctly issued token with an otherwise valid token intended only for a second owned resource. Request the same harmless protected operation with each.
Evidence required#
Expected resource, redacted issuer/audience/scope claims, verification outcome and unauthorized synthetic response.
Rule out false positives#
Some deployments intentionally define a valid audience set; compare against actual issuer and resource policy, not a guessed hostname.
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#
- T1550.001 · Use Alternate Authentication Material: Application Access Token — Only if: A captured or improperly obtainable application token is actually accepted for access to a protected service or resource outside the actor's intended permissions. Not established by: Finding a token alone is not reuse; routine authorized API calls are not this behavior. Current Enterprise tactic metadata lists Lateral Movement, not the old Defense Evasion label.