Weekly Cyber Briefing 24.11.2025
Weekly Cyber Briefing: 24 November 2025
Salesforce investigates major third-party breach; New npm malware campaign sends victims to crypto sites; Contractor admits to sabotaging former employer’s IT network
Weekly Cyber Briefing 24.11.2025
Salesforce investigates major third-party breach; New npm malware campaign sends victims to crypto sites; Contractor admits to sabotaging former employer’s IT network
The Cyber Threat Intelligence Briefing is a weekly round-up of the latest cybersecurity news, trends and indicators, curated by our Head of Incident Response, Oliver Burnand.
Salesforce has revealed a serious security incident involving applications published by Gainsight, a third-party vendor whose apps connect to its platform. An investigation into “unusual activity” suggests these apps may have allowed unauthorised access to customer data stored in Salesforce.
The company says it has revoked all active access and refresh tokens for the affected Gainsight apps and temporarily removed them from its AppExchange marketplace, while it completes its investigation.
Experts say the incident echoes a previous breach in August of this year. In that instance, attackers abused OAuth tokens from another integration, which has been linked to the threat group ShinyHunters.
While Salesforce insists there is no indication of a flaw in its core platform, the breach highlights vulnerabilities in how third-party integrations are managed in cloud environments. The full scale of affected customers remains unclear, but analysts believe over 200 organisations may have been impacted.
For Salesforce administrators and security teams who may have Gainsight-published applications (or any third-party connected apps) installed.
1: Review and Revoke Gainsight-Related Connected Apps
Salesforce has already revoked all active tokens for Gainsight-published apps, but you should still clean up manually to be 100% sure.
How to do it:
Also check:
What to rotate:
How:
2: Review Permission Sets & Profiles Assigned to the Integration User
Gainsight integrations often require broad permissions (View All Data, Modify All Data, API Enabled, etc.).
Action items:
3: Check Event Monitoring / Login History for Suspicious Activity
Look for logins or API calls that originated from IP addresses external to your company, or Gainsight’s known ranges. Key reports to run:
Salesforce has released a Security Advisory article with a list of known IoC’s related to the threat actor(s).
https://help.salesforce.com/s/articleView?id=005229029&type=1
4: Enable or Tighten Multi-Factor Authentication (MFA) & Session Policies
If not already done:
5: Monitor Gainsight’s Official Statements & Salesforce Trust Site
As of November 20, 2025, Gainsight apps remain disconnected from Salesforce and have not been relisted on the AppExchange. As a longer-term prevention measure, implement a third-party app risk review process (many companies now require SOC 2 Type II and external penetration test reports before installing AppExchange apps).
Researchers have uncovered a malware campaign hidden in seven npm packages linked to a threat actor known as ‘dino_reborn’. The operation used cloaking tools, anti-analysis tricks, and fake CAPTCHAs from crypto exchanges to separate genuine victims from security researchers.
Six packages carried almost identical malware, with a seventh serving a decoy webpage. All remained online until takedown requests. The malicious packages included signals-embed, dsidospsodlks, applicationooks21, application-phskck, integrator-filescrypt2025, integrator-2829 and integrator-2830.
Researchers say the campaign blends open-source distribution with malvertising techniques, aided by rapidly changing redirect URLs.
An npm package is simply a reusable piece of JavaScript code that someone has published so that other developers can easily install and use it in their own projects. They let you run JavaScript code outside of browsers, on servers, in the command line and in desktop apps, etc.
Malware can be embedded in npm packages, and several real-world, high-profile attacks have involved doing so. This can be done using techniques including, but not limited to, the following:
Once installed, the malware typically attempts to:
To protect against this and similar supply-chain attacks, businesses, especially those relying on Node.js development, should implement a layered defence strategy. We’ve shared a structured overview of the key actions we would recommend:
| Category | Action | Why and How |
| Package management | Enforce automated scanning of dependencies before installation. | Malicious packages like this slip through npm’s registry; tools like Socket, Snyk, or npm audit detect anomalies. Integrate into CI/CD pipelines to block unvetted code. |
| Dependency hygiene | Use lockfiles (e.g., package-lock.json) and avoid wildcard (*) dependencies; regularly update and prune unused packages. | Lockfiles pin versions to prevent supply-chain hijacks; run npm outdated weekly and test updates in staging. Limit global installs. |
| Code review and validation | Mandate peer reviews for third-party integrations and static analysis on imported scripts. | The malware’s IIFE auto-execution and fingerprinting code are red flags. Train devs to spot obfuscated JS or suspicious endpoints like /adspect-proxy.php. |
| Network monitoring | Deploy web application firewalls (WAFs) and endpoint detection to flag unusual traffic patterns. | Monitor for Adspect paths (/adspect-proxy.php, /adspect-file.php), device fingerprinting POSTs, or dynamic redirects. |
| User and browser security | Educate developers on risks and enforce browser extensions like uBlock Origin or NoScript in dev environments. | The campaign targets browsers; disable auto-execution of untrusted scripts and simulate ‘researcher’ fingerprints to test evasion. |
| Broader ecosystem | Adopt zero-trust for open-source: verify package maintainers, use private registries (e.g., Verdaccio), and segment dev environments. | This blends malvertising with OSS abuse; isolate build servers with air-gapped testing to contain blasts. |
An IT contractor in the US has pleaded guilty to sabotaging his former employer’s computer systems, causing more than $860,000 (£690,000) in damage.
Maxwell Schultz, 35, from Ohio, used another contractor’s credentials to access the firm’s network after being dismissed. He then ran a destructive script that reset around 2,500 passwords, locked staff out of key systems, and wiped activity logs to conceal his behaviour.
The attack, carried out in May 2021, disrupted customer-service operations and left thousands of employees unable to work. Schultz faces up to a decade in prison and a fine of up to $250,000 when he is sentenced early next year. The case highlights concerns about insider threats and the risks posed by former staff who retain access to corporate systems.
Malicious insiders have always been, and remain, the most challenging threat vector to defend against. The access rights they exploit have been legitimately granted to them, rendering traditional prevention and restriction measures largely ineffective. Monitoring for such threats is equally challenging: the overwhelming majority of employees are honest and productive, and in the EU, works councils typically view extensive employee surveillance with suspicion, often leading to regulatory scrutiny and significant penalties.
The malicious insider landscape has evolved in recent months. Increasingly, sophisticated threat actors actively entice unsuspecting or vulnerable employees, offering payment in exchange for sensitive information or direct access to systems. Disgruntled insiders no longer need to seek out opportunities; opportunities now seek them out. When adversaries identify a disgruntled or financially motivated individual, that person may willingly hand over the keys to the entire organisation.
Protecting against malicious insider threats is inherently challenging and requires a proper defence-in-depth strategy to have any realistic chance of success. The most effective approaches typically span three key domains:
Best practice includes: