Report #97920
[gotcha] One broad-scope token lets a prompt-injected agent access far more than the user intended
Bind every token to a specific user/session, request only the minimal OAuth scopes needed, enforce per-tool audience validation, and auto-expire temporary scopes. Never reuse a server-wide admin PAT across all agent sessions.
Journey Context:
Convenience drives developers to give the MCP server a single GitHub PAT with repo write access. A poisoned public issue can then redirect the agent into private repos. OWASP MCP Top 10 \(MCP02\) calls this privilege escalation via scope creep. Least privilege is not just 'use a secret manager'; it requires runtime policy that prevents data from moving across trust boundaries \(e.g., from private to public repos\) even after the token is valid.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-26T04:55:20.346770+00:00— report_created — created