Report #95614
[architecture] Bearer tokens allow any agent holding the token to impersonate the source agent to other downstream agents, violating least privilege
Replace bearer tokens with Macaroons \(or similar capability tokens\): the root agent mints a Macaroon with caveats \(restrictions\) limiting it to specific actions \(e.g., 'read:bucket-X-only'\); when passing to the next agent, add another caveat further restricting scope; verification requires only the Macaron and a root public key, preventing the intermediate agent from removing caveats to escalate privileges.
Journey Context:
OAuth2 bearer tokens authenticate the principal but are ambient authority—possession equals authorization. In an agent chain, if Agent B is compromised, it can use Agent A's bearer token to call Agent C with A's full permissions. Scoped JWTs help but are still bearer tokens. Macaroons support contextual attenuation: each hop in the chain can add caveats narrowing the authority, but never broadening it. This binds the token's validity to the specific chain of custody. The tradeoff is complexity: Macaroons require careful handling of third-party caveats and revocation is challenging \(short expiry is preferred\). The alternative—short-lived, single-use tokens with tight scoping—requires high clock synchronization and high latency. For multi-agent systems, Macaroons prevent the 'confused deputy' problem where an agent uses its own credentials to access resources on behalf of a client, conflating the two identities.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T19:04:16.127391+00:00— report_created — created