Code Security

How the Farmers Insurance Data Breach Happened Through a Vendor's Salesforce

Amartya | CodeAnt AI Code Review Platform
Sonali Sood

Founding GTM, CodeAnt AI

Farmers Insurance insures homes, cars, lives and small businesses for millions of customers. In August 2025, it began notifying 1,111,386 of them that their personal data had been stolen. Farmers' own systems were not breached. A third-party vendor told Farmers on May 30, 2025 that an unauthorized party had gotten into a database holding Farmers customer information the day before.

Reporting tied the Farmers Insurance data breach to a campaign that stole data from dozens of Salesforce customers in 2025. The attackers did not exploit Salesforce. They phoned employees and talked them into connecting a malicious app.

This teardown walks the timeline, the chain from phone call to bulk export and how to test your own SaaS estate for the same path.

What CodeAnt AI solves here: CodeAnt AI tests the connections between your identity provider, SaaS platforms and the data behind them, including OAuth-connected apps. It proves whether one compromised session or app grant reaches customer records, with a working proof of exploit for each high or critical finding.

What Happened in the Farmers Insurance Data Breach

The dates below come from Farmers' own notice and reporting by Security Boulevard, CX Today and CPO Magazine.

Date

What happened

March 2025

Salesforce warns customers about vishing calls and malicious modified versions of its Data Loader app.

May 29, 2025

An unauthorized party accesses a third-party vendor's database containing Farmers customer data.

May 30, 2025

The vendor detects the activity, blocks the actor and notifies Farmers.

June 4, 2025

Google Threat Intelligence Group publishes its analysis of the UNC6040 vishing campaign against Salesforce customers.

August 22, 2025

Farmers begins notifying affected customers and reports 1,111,386 people to regulators.

Close to three months passed between detection and customer notification. That gap drew criticism once the breach became public.

What Data Was Exposed

Farmers said the stolen records included the following fields.

  • Identity data: Names, addresses and dates of birth.

  • ID numbers: Driver's license numbers and the last four digits of Social Security numbers.

For an auto and home insurer, driver's license numbers are core underwriting data. They are also exactly what identity thieves use to pass verification checks elsewhere.

The Attack Chain, Technically

Farmers has not named the vendor. BleepingComputer reported that the data was stolen in the Salesforce campaign, and the chain below follows the method Google documented for it.

Stage 1. A vishing call posing as IT support

The attackers call employees while impersonating internal IT support, often about a supposed connectivity or ticket issue. Google's analysis says they targeted English-speaking employees of large companies. No email is involved. Mail filters and link scanners never get a chance to see anything.

Stage 2. A malicious connected app approved by the victim

During the call, the attacker walks the employee to Salesforce's connected app setup page and has them enter a connection code. Google's report says the app being approved was usually a modified version of Salesforce's Data Loader with different branding. That one approval hands the attacker an OAuth grant to query and export data from the org. Salesforce said the campaign exploited no vulnerability in its platform, and every step used a legitimate feature.

Stage 3. Bulk export through the API

Data Loader exists to move large volumes of records in and out of Salesforce. In attacker hands, it pulls entire tables. Google observed the group testing with small queries first, then ramping up to full table exports. In one case, detection cut them off after about 10 percent of the data, which is the best outcome this chain allows.

Stage 4. Persistence that survives a password reset

An OAuth grant is a standing credential. Resetting the employee's password does not revoke an app the employee already authorized. Incident response that stops at "reset the password" leaves the attacker's pipe open. Revoking the connected app has to be its own explicit step.

Stage 5. Extortion weeks or months later

Extortion demands in this campaign often came well after the theft, from actors using the ShinyHunters name. The group behind the Farmers theft claimed that ShinyHunters and Scattered Spider are the same. Farmers' vendor did one thing right. Its monitoring caught the activity quickly and blocked the actor, according to Farmers' notice.

Why the Salesforce Campaign Hit So Many Companies

Farmers was one of many. The same method reached Google, Workday, Allianz Life and a long list of other Salesforce customers across 2025. The campaign worked because a CRM concentrates customer data in one place and offers powerful, legitimate export tools. A single approved app turns both into an exfiltration channel.

Security control

Did it stop this chain?

Why

Email security

No

The attack arrived by phone

MFA on user login

Often no

The employee approved the app from an authenticated session

Password reset after detection

No

The OAuth grant keeps working

Connected app allowlisting

Yes

Unapproved apps cannot be authorized

Bulk export monitoring

Partly

It can cut off exfiltration mid-stream

For insurers, this is a vendor-risk problem as much as an internal one. The data sat in a vendor's system, and Farmers' customers paid the price.

What a Real Test Against This Chain Looks Like

The phone call is a social engineering test. The rest of the chain is technical and testable.

Chain link

What the test checks

Evidence it produces

Connected app policy

Whether any user can authorize a new OAuth app without admin approval

Proof of whether the setup page accepts unapproved apps

Existing grants

Every connected app with API or bulk access to customer data

A live inventory of standing OAuth credentials

Export scope

What a standard user's session can pull through the API

Records and objects reachable in bulk

Revocation

Whether incident response actually kills app tokens

Proof that access ends when it should

Vendor data paths

Which vendors hold your customer data in SaaS platforms they control

A map of third-party exposure

The McKesson breach teardown walks the same vishing, SSO and OAuth chain in more technical detail. Our API penetration testing guide covers how scope and authorization testing applies to SaaS APIs.

Lessons for Auto, Home and P&C Insurers

The Farmers Insurance data breach carries lessons for any carrier that shares customer data with vendors running SaaS platforms.

  • Lock down connected apps: Require admin approval for every new OAuth app in Salesforce and every other SaaS platform holding customer data.

  • Inventory existing grants: Review which apps already hold API access, and remove anything unused or unrecognized.

  • Treat app revocation as an IR step: A compromised-account playbook must revoke OAuth tokens as well as reset passwords.

  • Alert on bulk exports: Large API exports by a new app or a user who never exports should trigger review.

  • Push the same controls to vendors: Ask vendors holding your data how they restrict connected apps and monitor exports, then verify.

  • Know your regulatory clock: Insurers answer to the GLBA Safeguards Rule, NYDFS Part 500 and state data security laws, all of which reach third-party service providers.

Our guide to how insurance companies get breached through portals, APIs and vendors covers why the vendor path has become the dominant way into insurers.

How CodeAnt Would Have Caught This

The breach happened in a vendor's environment, and Farmers has not named the vendor. So we can't claim CodeAnt would have prevented it. What CodeAnt tests is the exact seam this campaign used, between an authenticated identity and the data a SaaS platform will export.

  • Gray box testing from a compromised session: Agents authenticate as a standard user and chain what that session can reach, including API scopes and bulk export paths.

  • API-scoped testing for connected apps: OAuth scopes and app grants are tested directly, so a standing credential with bulk access gets found before an attacker uses it.

  • Proof instead of a severity label: A broad app scope gets tested for whether it actually reaches customer records, and the finding ships with a working proof of exploit.

  • Continuous coverage: A newly authorized app or widened scope gets tested when it changes, instead of waiting for next year's engagement.

The walkthrough of how AI penetration testing traces a data leak shows a full chain end to end.

The Fix

The Farmers Insurance data breach needed one phone call, one approved app and one export tool that worked exactly as designed. The weak point was the permission to connect, and it sat in a vendor's system. Lock down who can authorize apps, inventory the grants you already have and test what they can export.

Run a free black box scan on one URL to see your exposed surface, then book a walkthrough to see SaaS and API chains tested through to a proven data leak. For the compliance side, start with our guide to penetration testing for insurance companies.

FAQs

What happened in the Farmers Insurance data breach?

How many people were affected by the Farmers Insurance breach?

Was Salesforce hacked in the Farmers breach?

What information was stolen from Farmers Insurance?

Who was behind the Farmers Insurance data breach?

Start Your 14-Day Free Trial

AI code reviews, security and quality trusted by modern engineering teams.

Table of Content
No headings found on page

Ship clean & secure code faster

Get Pentest Report

NO CC REQUIRED