how it happened
- whoUNC6395stole Drift OAuth tokens
- the gapSalesforce connectionsapproved by each customer
- thensupport casesAWS keys pasted in tickets
- the result700+ organisationstokens revoked 20 Aug
what everyone assumed
Vendor risk is understood as proportional to the vendor. A CRM compromise would be a catastrophe; a chat widget compromise sounds like a chat widget problem, small and contained, someone else’s incident to manage. The integration had been approved once, worked daily, and never asked to be reconsidered. Every company on the customer list made the same reasonable call.
what happened
With Drift’s tokens in hand, the attackers did not need to touch any victim’s network. They authenticated into Salesforce instance after Salesforce instance, through connections each customer had approved themselves, and harvested support case data at scale. Support cases turn out to be where secrets go to rest: engineers troubleshooting under pressure had pasted AWS keys and Snowflake tokens into tickets, and those tickets now sat in the haul, each one a potential second breach.
step by step
- customers approve the Drift chat integrationIt holds tokens into their Salesforce.
- attackers steal Drift's tokensNo victim network needs touching.the assumption breaks here
- support cases harvested across instancesTickets hold pasted AWS keys and Snowflake tokens.
- more than 700 organisationsIncluding Cloudflare, Palo Alto Networks and Zscaler.
how it surfaced
Google Cloud’s Mandiant threat intelligence team documented the campaign: data harvested from the Salesforce instances of more than 700 organizations, all reached through one integration’s stolen tokens. The victim list included Cloudflare, Palo Alto Networks, and Zscaler, companies that sell security for a living and still had a chat widget’s token standing between their support data and the internet.
An OAuth token is a key that works from anywhere and answers to nobody’s laptop, badge, or VPN.
When an integration serves hundreds of customers, its tokens carry the combined reach of all of them, so the blast radius of the vendor’s worst day is every customer connected to it. The size of the vendor and the size of the breach are separate quantities.
picture it at a company like yours
The company here is made up. The other two paths are not: they happened, and each links to the story.
- in this storythe day it mattersThe chat vendor is breached and its keys are stolen.what it costs youYour CRM is read through the chat tool, and the passwords in old tickets open the next doors.
- or it goes like thisit happenedGitHub OAuth tokens, 2022howIntegration keys to your code host are stolen from the integration vendor.what leavesyour private code and the secrets inside itwho ends up with itattackers looking for the next door
- or it goes like thisit happenedSisense, 2024howAn analytics vendor is breached and the keys it holds to your systems are copied.what leavesconnections straight into your datawho ends up with itwhoever holds the vendor's keys
sources
your turn
what you can do about it
this week
Pull the connected-app list and ask two questions of each entry: who owns it, and what could its token read if it were stolen today.
Your CRM has integrations with standing tokens granted years ago, some by people who have left, for tools you may no longer use. Then run one search through your own support cases for pasted credentials. The Drift victims found both answers at the same time, in the wrong order.
go deeper
if you're not sure where to start
Run the offboarding checklist on one leaver. It covers every account and token to close when someone leaves.
open the checklist →
