All insights

September 5, 2025

8 min read

The Drift breach was not about malware. It was about agentic identity.

Written by Cyata Research Team

On August 8, 2025, a threat actor used stolen OAuth tokens from the Salesloft Drift app to log into hundreds of customer Salesforce tenants and pull data at scale. Google’s Threat Intelligence Group tracked the activity through at least August 18, and later confirmed the actor also abused OAuth for the “Drift Email” integration to access a very small number of Google Workspace mailboxes that had explicitly connected Drift. Salesforce removed the Drift app from AppExchange and revoked tokens, and Google disabled the Drift Email integration and revoked the related tokens.

Cloudflare’s public write up shows what this looked like in practice. The actor enumerated objects, measured tenant size with SELECT COUNT() calls, and then pulled case text using the Salesforce Bulk API 2.0. Finally they deleted the Bulk job to hide the trail. Cloudflare rotated 104 internal API tokens found in the exfiltrated case text and notified customers.

Multiple outlets now put the potential victim count in the high hundreds. Zscaler and Palo Alto Networks disclosed exposure of Salesforce case and contact data, and Salesforce said the issue was limited to the Drift connection, not a vulnerability in Salesforce itself.

What actually failed

This was not an endpoint or network failure. It was an agentic identity failure.

OAuth bearer and refresh tokens minted for a trusted agent were stolen and reused from attacker infrastructure. Long lived or refreshable tokens with broad scopes mirrored the app’s access in each tenant. Since activity came from a known connected app, most monitoring did not ring any bells. GTIG’s guidance and Cloudflare’s timeline both show the same pattern: normal looking API traffic, large SOQL pulls, Bulk API jobs, and a tidy clean up step. Logs survived. Detection did not.

Key lesson

The biggest breaches in 2025 are not riding malware. They are riding our agentic identity blind spots. We trust integrations like employees, but we rarely govern, monitor, or offboard them like employees.

How the attack worked, by the numbers

  • Initial vector: OAuth tokens for the Drift connected app in Salesforce were compromised. Later, tokens for Drift Email were also confirmed compromised.
  • Tactics: Recon via SOQL and describe calls, object counting, then Bulk API 2.0 export of large datasets. Job deletion to obscure evidence.
  • Targets: Primarily Salesforce tenants. For tenants that had explicitly integrated Drift Email, a small number of Google Workspace accounts were accessed. GTIG advises treating any tokens stored in or connected to Drift as potentially compromised.
  • Scope and response: Hundreds of organizations affected. Salesforce disabled Salesloft integrations. Google revoked Drift Email tokens. Multiple companies disclosed rotating credentials and disconnecting the integration.  

Why it was hard to spot

1

Bearer semantics

A valid access token is a get in free pass until it expires or is revoked. With a refresh token, the party continues. If an attacker uses the same scopes the app already had, controls keyed to user logins and MFA never trigger.

2

Known app trust

Many orgs implicitly trust the connected app identity. If you do not baseline that app’s normal API patterns, unusual use can hide inside the noise of normal use.

3

Fragmented telemetry

Token issuance sits at the OAuth server. Data access sits in each SaaS. Without correlation across issuance, validation, and data access, you will not see impossible travel or sudden burst patterns until after exfiltration. GTIG calls out this gap explicitly and recommends correlating Drift connected app events with Event Monitoring and UniqueQuery logs.

A practical detection playbook you can run today

Below are concrete signals mapped to where you can see them. Think small, composable rules that you correlate.

At the OAuth server

Between client and resource

At Salesforce

At Google Workspace for tenants with Drift Email

Example starting points

Immediate containment, in order of operations

1

Revoke

Revoke Drift connected app tokens in Salesforce and any other platforms that integrated with Drift. For tenants that used Drift Email, ensure Workspace tokens are revoked.

2

Rotate

Rotate any keys, passwords, or tokens found in Salesforce free text fields and support cases. Cloudflare found 104 of their own API tokens in case text and rotated all of them. Your tenant likely has similar exposure in case bodies and notes.

3

Hunt

Query Event Monitoring and UniqueQuery logs for the sequences GTIG and Cloudflare published. Review API clients and user agents listed in the IOCs. Use Tor exit node lists as a coarse filter, but do not rely on them alone.

4

Scope reduction

Audit the Drift connected app or any equivalent agent. Remove full access, enforce IP restrictions on the connected app, and set shorter session lifetimes.

Treat agents as first class identities

Agents look like employees in how they operate. They authenticate, make API calls, process sensitive data, and can trigger automations across SaaS and cloud. They are not managed like employees.

Where Cyata fits

Cyata’s thesis has been simple: agents are identities. If you cannot discover them, explain their behavior, and control their access across systems, you will miss the next Drift.

If you are investigating this incident, start with GTIG’s advisory and your Event Monitoring logs. If you are preparing for the next one, make your agents first class identities now.

Sources to start from

  1. Google Threat Intelligence on Drift tokens, scope, IOCs, and Workspace Drift Email actions.

  2. Cloudflare incident timeline showing SOQL patterns, Bulk API exfiltration, and job deletion.

  3. Zscaler and Palo Alto Networks disclosures on impacted Salesforce data.

  4. Salesloft’s own Trust Portal with updates of their investigation.

More insights

Blog

Sign up for Cyata’s Newsletter

Get early access, research, and updates from the leaders in Agentic Identity.

By submitting, you agree to our Privacy Policy