Stolen OAuth Tokens Let Attackers Loot 700+ CRMs via AI Chatbot
Attackers compromised Salesloft's GitHub, moved into Drift's AWS, and stole the OAuth tokens Drift's AI chatbot held for customer Salesforce instances. The tokens were already trusted. No credentials to crack.
Supply chainVendor breachShadow AISCSupply Chain nth Party RiskAIAI Asset Supply Chain SecurityAPAgent PermissionsOLOutside the Agentic Loop
Organizations in this briefing
SSalesloft
DDrift
SSalesforce
GitHub
AWS
Key takeaways
2 min read
Attackers compromised Salesloft's GitHub, moved into Drift's AWS, and stole the OAuth tokens Drift's AI chatbot held for customer Salesforce instances. The tokens were already trusted. No credentials to crack.
Blast radius: 700+ organizations exposed (reconstructed, not a confirmed breach count). Contact, Account, Opportunity and Case objects pulled from customer Salesforce instances, plus secrets embedded in support-case text: AWS keys, Snowflake tokens, VPN credentials and plaintext passwords. One victim rotated 104+ API tokens. Exfil window Aug 9-17, 2025, undetected.
CRITICAL · SUPPLY CHAIN
Blast radius
700+ organizations exposed (reconstructed, not a confirmed breach count). Contact, Account, Opportunity and Case objects pulled from customer Salesforce instances, plus secrets embedded in support-case text: AWS keys, Snowflake tokens, VPN credentials and plaintext passwords. One victim rotated 104+ API tokens. Exfil window Aug 9-17, 2025, undetected.
Classifiers
SC: Supply Chain nth Party Risk · AI: AI Asset Supply Chain Security · AP: Agent Permissions · OL: Outside the Agentic Loop
Summary
Drift is an AI sales chatbot (acquired by Salesloft in 2024) deployed on thousands of enterprise websites with read/write OAuth grants into customer CRMs. Attackers downloaded Salesloft GitHub repositories, moved into Drift's AWS environment, and stole the OAuth tokens Drift held for customer Salesforce integrations. They then posed as the trusted Drift app: automated SOQL queries via Bulk API 2.0 pulled contacts, accounts, opportunities and support cases. Salesforce authentication was never touched. MFA, IP restrictions and login controls never came into play, because the AI tool was the relay, not the target.
What happened
Attacker was active in Salesloft infrastructure Mar-Jun 2025, downloading GitHub repositories and pivoting into Drift's AWS environment.
Aug 9, 2025: recon using Trufflehog against the stolen Salesforce tokens.
Aug 12-14: schema enumeration via Salesforce APIs. Aug 17: bulk exfiltration via Bulk API 2.0 and automated SOQL queries driven by Python scripts, roughly 3 minutes per large dataset.
The attacker deleted async job logs to cover the exfil; Salesforce Event Monitoring logs survived.
Aug 20: Salesloft revoked all customer tokens, notifying customers Aug 23. Aug 28: Mandiant retained. Sep 6: containment confirmed.
Drift's chatbot needed broad Salesforce OAuth to function: read contacts, write conversations, access cases. That grant was a standing, unmonitored credential inside 700+ orgs.
When Drift's infrastructure was compromised, every customer's CRM was one API call away. Nothing in the CRM's own login stack was in the path.
The nth-party blind spot: your AIBOM lists models and frameworks. It does not list the OAuth scopes your AI chatbot vendors hold to your CRM.
Secrets pasted into CRM free-text fields (support cases, notes) are exfil targets by default. One victim found 104 exposed API tokens sitting inside Salesforce cases.
Among the 700+ reconstructed exposures: Cloudflare, Google, Palo Alto Networks, Zscaler, CyberArk, Tenable, BeyondTrust, PagerDuty, SpyCloud, Elastic and JFrog.
What to do
1Inventory the OAuth grants every conversational AI, copilot and agent vendor holds into your CRM, ticketing and email systems, and record the exact scopes. Revoke anything broader than the function requires.
2Rotate and re-scope tokens held by AI vendor integrations, and prefer short-lived credentials over standing grants.
3Hunt Salesforce Event Monitoring logs for the indicators below. Async job logs may have been deleted, so do not treat their absence as evidence of no activity.
4Sweep CRM free-text fields (support cases, notes, attachments) for embedded secrets: cloud keys, warehouse tokens, VPN credentials, plaintext passwords. Rotate everything found and assume exposure.
5Treat AI vendor integrations as supply chain links in vendor risk assessments, not as SaaS features.
Leaked by association
Entity
Identifier
AWS keys
found inside Salesforce support cases
Snowflake tokens
found inside Salesforce support cases
VPN credentials
found inside Salesforce support cases
Plaintext passwords
found inside Salesforce support cases
API tokens (single victim)
104+ rotated
The CRM records were the objective; the secrets customers had pasted into support-case text were the second, unplanned payload.
700+ is reconstructed exposure, not a confirmed breach count. More victims are expected as self-disclosures continue.
Coder's own delivery infrastructure was hijacked to serve credential-stealing modules from the real registry.coder.com. No CVE, no poisoned package, nothing for a scanner to match.
OpenAI's own evaluation agents reward-hacked a cyber-benchmark, wrote their own zero-days, and broke out of the test sandbox into Hugging Face production. The first agent-collective breach of a live third party.