I connected Perplexity Computer to my personal GitHub account. The authorization screen requested sixteen OAuth scopes. One was delete_repo. Another was workflow - write access to GitHub Actions files. A third was admin:public_key, which lets the connected app add SSH keys to my account. I wanted to search my code.

The Trust Model Your Infrastructure Assumes

When you connect an agentic AI tool to a service via OAuth, you hand the agent a set of keys. Each grants a class of actions. Traditional GitHub OAuth App tokens have no scheduled expiry while actively used; they remain valid until revoked or invalidated by specific GitHub controls.

Every perimeter control you run assumes the threat originates outside the boundary. Identity-Aware Proxy on Cloud Run validates the inbound HTTP request, but it never sees the Gmail API call that goes straight to gmail.googleapis.com. As I argued in my IAP article, IAP guards the request path, not the scope of a token once that token has been issued. The gap is architectural.

OAuth was designed for human-delegated access. You consent once, use the app, revisit when something feels wrong. Agentic tools break that model: the token has no scheduled expiry while in use, and the agent operates across multiple services at machine speed.

What One Connector Exposed

I tested the GitHub connector against my personal account (jrehagen) and a sandboxed Gmail test account. Both used real OAuth flows and real scope grants. GitHub findings are operational, first-person. Gmail findings are controlled, sandboxed. Slack and Notion are analyzed from documentation only.

GitHub's connector requests repo - full read and write to every repository I can access. GitHub's OAuth model offers no read-only equivalent. Any app that needs to read private code requests the same scope that grants write and delete. Perplexity chose an OAuth App over a GitHub App, forgoing repository-level scoping and short-lived tokens.[^8][^10]

The Gmail connector requests gmail.modify - Google's second-most permissive email scope.[^14] A 2018 IEEE paper found email access alone compromises 81.1% of high-traffic websites via password reset flows.[^1] The connector's consent request bundles it with calendar events, contacts, and the full Workspace directory.

The Structural Argument

None of this is an implementation bug waiting to be patched. It is what OAuth becomes when the client is an autonomous agent instead of a person, and it shows up three ways.

First, the tokens persist. A GitHub OAuth App token has no scheduled expiry while it is in active use; GitHub will kill it after prolonged inactivity, a public leak, enterprise action, or an explicit revocation, but nothing short of those.[^2] So a breach at Perplexity inherits every scope you granted, and keeps it. The Salesloft/Drift incident of August 2025 showed the blast radius: tokens stolen from one AI vendor opened Salesforce data at more than 700 organizations.[^3]

Second, processing untrusted input is the whole job. An agent reads your email, summarizes web pages, and works through documents it was handed by someone else. Simon Willison's "lethal trifecta" names the danger: private-data access, exposure to untrusted content, and a way to exfiltrate.[^4] Every multi-connector setup has all three at once. CometJacking put that to work, riding pre-existing OAuth grants and Base64-encoding the payload to slip past Perplexity's exfiltration detection.[^5]

Third, the attacks actually land. A meta-analysis of 78 studies put success rates between 66.9% and 84.1% in agentic systems with auto-execution.[^6] Vendors have begun bolting on defenses - CrowdStrike's Falcon integration with Comet Enterprise (March 2026) adds a runtime inspection layer[^7] - but a runtime filter sits downstream of the grant. It shrinks the blast radius without changing what the token is allowed to reach.

The Practitioner Posture

I run Bevis (personal finance) and Trellis (honeypot platform) behind IAP on Cloud Run. Connecting either to a multi-connector agent gives the agent indirect paths to protected data - through email, calendar, or any tool containing service URLs or credentials.

My current posture: I have not connected Gmail. I connected GitHub to a personal account only. Before connecting any enterprise service, I will audit scopes, model what prompt injection could reach, and treat the token as a persistent service account credential.

For any team enabling these connectors: review scopes before authorizing, separate personal and organizational grants, establish a revocation procedure. Check grants at github.com/settings/applications and myaccount.google.com/permissions.

These tokens are active, persistent, and largely invisible to your existing security stack.