DEV Community

Tahir Almas
Tahir Almas

Posted on • Originally published at ictcrm.com

Nobody Hacked the CRM Software. They Just Logged In

Originally published at ictcrm.com

Short answer: the CRM software was not broken. In the biggest CRM breaches of 2026, attackers turned up holding a valid credential or an OAuth token nobody had revoked, then used ordinary product features to pull data out in bulk. No patch would have stopped any of it. Knowing what still holds a key to your system would have.

Beacon CRM is the one in the news this week. The London company runs a cloud CRM used by more than 1,000 charities for donations, memberships and event ticketing. It became aware of an incident on 29 July 2026 and notified its customers on 3 August. An unauthorised third party had used compromised login credentials to reach Beacon's systems and take copies of database backups. Beacon has told charities to assume that everything they stored, attachments included, may have been taken.

Four steps, none of which require a vulnerability in the product.

The same pattern shows up in every 2026 CRM software breach

Look at three incidents side by side and the shape stops being a coincidence.

Beacon lost database backups to stolen login credentials. In June, a campaign tracked as UNC6395 abused OAuth tokens belonging to the Salesloft Drift chat integration and used them to query Salesforce instances through the API, hitting more than 700 organisations over roughly ten days. Salesforce itself was not exploited. The trust relationship between Salesforce and a third-party app was. Around the same time, Klue disclosed that attackers had walked in on a credential first issued in 2022 that had never been revoked, roughly four years of standing access nobody was watching.

Three different companies, three different products, one shared root cause. The authentication worked exactly as designed. That is the uncomfortable part.

I would go further and say the security industry has spent a decade training buyers to ask the wrong question. Procurement asks about certifications, encryption at rest and patch cadence. Those matter. None of them touch a scenario where the request arrives with a genuine token attached and the API answers politely.

Why a supply-chain breach lands harder than a direct one

When a charity gets phished directly, the damage stops at that charity. When the platform underneath 1,000 charities gets reached, every one of them writes to their supporters at once, and none of them did anything wrong.

That asymmetry is the whole argument. A single set of stolen credentials produced notification duties, regulator contact and donor trust damage across a thousand independent organisations, several of which are small enough to have no security staff at all. One of the affected groups is a cancer charity. Another supports children's health research. These are not organisations with an incident response retainer.

There is a second-order problem that gets less attention. Support cases and CRM notes are where people paste things. In the Salesloft campaign, attackers went looking for exactly that, and reportedly pulled cloud access keys, database tokens and passwords out of support case text. Your CRM is probably storing secrets you never intended it to store, because a colleague once pasted a config snippet into a ticket to be helpful.

The audit worth doing this week

None of what follows needs budget approval. It needs an admin login and a couple of hours.

Start with question one. Most teams find something surprising before they get to question three.

Start with the integrations list, because that is where the June campaign lived. Open the connected apps or authorised applications screen in your CRM and read every entry out loud. In most teams there will be at least one tool that was trialled, rejected and never disconnected. Its token is still valid. Revoking it costs nothing and removes a live path into your data.

Then look at scopes. A calendar sync asking for read access to every contact record is not a feature decision, it is a blast radius decision. Where the CRM lets you narrow a token to specific objects, narrow it.

The support-notes question is the one that tends to produce a bad afternoon. Search your case history for terms like password, api key, secret and bearer. If you find plaintext credentials sitting in tickets from 2024, rotate them and then talk to the team about where those things should live instead. A password manager is boring and it works.

Finally, ask whether anyone would notice a large export. Most CRM platforms will happily serve 40,000 records to a valid token at machine speed. If you have no alerting on export volume, the first sign of trouble will be a phone call from your vendor. Beacon's customers found out five days after detection, which is fast by industry standards and still felt slow to the charities involved.

Where self-hosting changes the arithmetic, and where it does not

Now the honest part, because there is a version of this article that ends with a sales pitch and it would be a dishonest one.

Running your own CRM does not make you immune to any of this. A stolen admin password works the same way on your server as it does on someone else's. If anything, a self-hosted deployment moves patching, backup encryption and monitoring onto your plate, and plenty of teams handle that worse than a dedicated provider would.

What self-hosting does change is the shape of the risk. You are no longer part of a pool of 1,000 tenants behind one credential store, so a breach at another organisation cannot become your breach. You decide which integrations exist rather than inheriting a marketplace of them. Your backups sit where you put them. That is a meaningful difference for anyone holding health records, legal matters or donor data, and it is the reason self-hosted CRM keeps coming up in data sovereignty conversations. It is also a trade, not a free upgrade.

The integration question is where the two models genuinely diverge. On a hosted platform you can usually see the connected apps but not always the token issue dates or the last-used timestamps. When you run the stack yourself, that data is in your own database and you can query it however you like. If you are wiring a CRM into telephony, ticketing or billing, it is worth reading how those connections are set up before you approve the next one.

ICTCRM is open source and self-hosted, so the credential store, the integration list and the backups all sit on infrastructure you control. That is a starting position rather than a guarantee. The audit above still applies, and you still have to run it.

What to tell your board if they ask

They will ask, because charity sector breaches get press coverage. The answer that holds up is not we use an encrypted platform. It is closer to this: we know which systems hold credentials against our customer data, we know when each one was last used, we can revoke any of them in under an hour, and we have checked that our records do not contain secrets in free text.

If you cannot say those four things yet, that is your next sprint. It is considerably cheaper than the alternative, and unlike most security work it produces a finished answer rather than an ongoing programme.

Frequently asked questions

Was the CRM software itself vulnerable in these breaches?

No. In the Beacon, Salesloft Drift and Klue incidents, the attackers used valid authentication rather than a software flaw. That is why patching would not have prevented them and why credential lifecycle is the control that matters here.

What is a supply-chain CRM breach?

It is a breach of the platform or integration that many organisations share, rather than of any one organisation's own systems. The Beacon incident affected data belonging to over 1,000 charities even though none of those charities were attacked directly.

How do I find which integrations have access to my CRM?

Look for a connected apps, authorised applications or API tokens screen in your CRM admin area. List every entry, identify who owns it, and revoke anything nobody can account for. Repeat quarterly rather than once.

Does self-hosting a CRM prevent this kind of attack?

Not on its own. A stolen credential is just as effective against your own server. What self-hosting changes is that your data is not pooled with other tenants behind shared infrastructure, and you control which integrations exist and where backups are stored.

What should I do first if my CRM provider reports a breach?

Rotate every credential and API token connected to that platform, assume exported data includes anything stored in free-text fields, and check your own regulatory notification duties. Waiting for the vendor's final scope report before acting costs you time you do not have.

How long should an OAuth token stay valid?

As short as the integration tolerates, with a hard review date. The Klue incident involved a credential issued in 2022 that still worked in 2026. A token with no expiry and no owner is an open door that nobody remembers building.

Related resources

  • Self-Hosted CRM in 2026: Data Sovereignty, Privacy, and Total Cost
  • Data Sovereignty for CRM: Why Self-Hosted Open Source Keeps Your Data Yours
  • Best Free Open Source CRM Software in 2026: Compared
  • Connecting ICTCRM with Business Tools
  • ICTCRM features

Where to go next

If the integrations audit turned up more than you expected, the follow-up question is usually whether the platform itself should sit somewhere you control. Have a look at ICTCRM for the open source, self-hosted option, or go straight to the feature list to see how it handles telephony, omnichannel and data storage. Tell us what you are running today and we will help you work out what a migration would actually involve. Open a ticket at service.ictvision.net.

Top comments (0)