Brevo Supply Chain Attack Pushes WordPress Backdoors and ClickFix Malware to 100,000+ Sites
Key Takeaways A supply-chain attack against Brevo injected malicious JavaScript into widely used website components. Over 100,000 customer websites were affected on September 14, 2023. The attack...
Key Takeaways
- A supply-chain attack against Brevo injected malicious JavaScript into widely used website components.
- Over 100,000 customer websites were affected on September 14, 2023.
- The attack deployed WordPress backdoors for administrators and ClickFix malware for general visitors.
- The incident highlights the amplified risk of compromising shared web services.
- While the original malicious code has been removed, cached copies and compromised sites may still pose a threat.
A sophisticated supply-chain attack targeting Brevo, a prominent customer relationship management platform, briefly transformed widely adopted website tools into a conduit for malware distribution. Threat actors injected malicious JavaScript into services that numerous customer websites integrate, thereby exposing both website visitors and WordPress administrators to significant risk.
Table Of Content
The malicious activity impacted more than 100,000 customer sites on September 14, according to an investigation into the incident. Users interacting with affected websites through chat features, sign-up forms, or email unsubscribe pages were presented with a deceptive verification prompt, coercing them into executing a malicious command.
Researchers at Sansec said in a report that they uncovered this two-pronged operation by tracking compromised scripts across Brevo’s services and customer integrations. One vector specifically targeted logged-in WordPress administrators, while the other employed a ClickFix overlay to deceive ordinary website visitors.
Sansec emphasized that this incident underscores how a single compromised web component can rapidly escalate into a widespread intrusion. Instead of individually breaching multiple websites, attackers can compromise a shared service, leveraging its extensive reach to inject harmful content onto a vast number of platforms.
Brevo Supply Chain Attack Details
The malicious code was active between 16:05:18 and 20:12:53 UTC on September 14. It appeared directly on Brevo-hosted pages and within JavaScript files associated with a website tracker and chat widget. This widespread integration meant that any website embedding these Brevo components was exposed to the attack.
For visitors already logged into WordPress as administrators, the injected script attempted to install a plugin using their active session. While Sansec was unable to retrieve the specific plugin, they assessed it as a likely backdoor, consistent with known tactics involving trusted WordPress plugin backdoors. For other visitors, the script presented a full-page ClickFix prompt, masquerading as a human verification step. This prompt instructed users to copy a command to their clipboard and then paste and execute it, effectively turning a common web interaction into malware execution without exploiting any browser vulnerabilities.
Sansec’s monitoring recorded 2,549 Content Security Policy (CSP) violation reports across 12 websites during and immediately after the attack window. Although the malicious hosts ceased resolving on September 15 and the original code at Brevo was cleaned, concerns remain regarding cached copies of the malicious scripts and potentially compromised client sites.
Initial disclosures indicated six hijacked customer accounts, but Sansec’s findings suggest a more extensive second-stage compromise affecting shared delivery infrastructure. This distinction is critical because an attack on a hosted asset can impact numerous sites, even those whose individual account credentials were not stolen.
ClickFix Exposure and Response
The ClickFix malware operates on social engineering rather than silent exploitation. Its deceptive browser check persuades users to perform the final malicious step themselves. This technique mirrors recent ClickFix campaigns that leverage convincing prompts to turn clipboard actions into an initial foothold on a user’s device.
What You Should Do
- For Site Owners:
- Review web-server logs for unauthorized WordPress plugin upload and activation requests that occurred on September 14.
- Inspect all plugins installed or activated on September 14. Compare files on disk with the administrator console, as malicious plugins may be hidden from the standard list.
- Preserve all relevant logs before they are removed by normal retention policies.
- Reset privileged accounts if any suspicious activity is detected.
- Implement robust monitoring for third-party JavaScript integrations and conduct rapid integrity checks after any supplier incidents.
- Limit administrator sessions to reduce the attack surface.
- For Website Visitors:
- If you followed a “human verification” prompt and executed a command on September 14, immediately run a full antivirus scan on your device.
- Report any suspicious device behavior to your IT department or security provider.
- Be aware that legitimate websites will never ask you to open a terminal, Run dialog, or command prompt to pass a security check.
The available evidence suggests that the attackers may have gained access to Brevo’s Cloudflare environment, allowing them to make DNS changes and alter responses across related domains. While this remains an assessment rather than a confirmed root cause, it highlights the critical importance of closely monitoring third-party scripts, restricting administrative access, and performing swift integrity checks following any supplier incident.
Indicators of Compromise (IoCs)
Note: IP addresses and domains are intentionally defanged (e.g., [.]) to prevent accidental resolution or hyperlinking. Re-fang only within controlled threat intelligence platforms such as MISP, VirusTotal, or your SIEM.
| Type | Indicator | Description |
|---|---|---|
| Modified JavaScript URL | https://cdn[.]brevo[.]com/js/sdk-loader[.]js |
Affected tracker loader file |
| Modified JavaScript URL | https://cdn[.]brevo[.]com/js/brevo-conversations[.]js |
Chat-widget JavaScript asset referenced in the investigation |
| Modified JavaScript URL | https://conversations-widget[.]brevo[.]com/brevo-conversations[.]js |
Affected conversations-widget JavaScript file |
| Malicious script URL | https://cdn9[.]sendibt1[.]com/f[.]js |
Injected malware script observed on affected Brevo pages |
| Malicious script URL | https://cdn2[.]sendibt1[.]com/f[.]js |
Injected malware script loaded by altered assets |
| Malicious archive URL | https://cdn10[.]sendibt1[.]com/p/wm[.]zip |
WordPress plugin archive reportedly installed through an authenticated administrator session |
| Domain | cdn[.]sendibt1[.]com |
Malicious loader infrastructure, reported as NXDOMAIN from September 15 |
| Domain | cdn2[.]sendibt1[.]com |
Malicious loader infrastructure, reported as NXDOMAIN from September 15 |
| Domain | cdn3[.]sendibt1[.]com |
Malicious loader infrastructure, reported as NXDOMAIN from September 15 |
| Domain | cdn4[.]sendibt1[.]com |
Malicious loader infrastructure, reported as NXDOMAIN from September 15 |
| Domain | cdn9[.]sendibt1[.]com |
Malicious loader infrastructure, reported as NXDOMAIN from September 15 |
| Domain | cdn10[.]sendibt1[.]com |
Malicious loader infrastructure, reported as NXDOMAIN from September 15 |
| Domain | cdn11[.]sendibt1[.]com |
Malicious loader infrastructure, reported as NXDOMAIN from September 15 |
| Domain | sendibt1[.]com |
Domain associated with attacker-controlled CDN records |
| IP address | 104[.]21[.]77[.]104 |
Address recorded for cdn[.]sendibt1[.]com |
| IP address | 172[.]246[.]243[.]65 |
Address returned by sendibt1[.]com during the investigation |
| SHA-256 | fe8447fd1ec4dca652b71db2c749fcc24a5bec3875f3654042169fb2418aed09 |
Clean sdk-loader[.]js version |
| SHA-256 | 58a5c601c9df7ca2120435588fc39f97712d9b878795f6ee500590099a432308 |
Injected sdk-loader[.]js version |
| SHA-256 | f67d572d2d30407b3f470904326411450763108980cdad89550fbb221fb06782 |
Injected sdk-loader[.]js version |
| SHA-256 | 26166cd87ff07e7a50317a24126d14b262e842c5715585636dee3ab3f227ddca |
Clean brevo-conversations[.]js version |
| SHA-256 | 9b62c12bc5c7feb9802f58e6cf75a368690df3c754e37cc64483a92acacf87a5 |
Injected brevo-conversations[.]js version |
| WordPress log artifact | /wp-admin/update[.]php?action=upload-plugin |
POST request to review for unauthorized plugin upload activity |
| WordPress log artifact | /wp-admin/plugins[.]php?action=activate |
GET request to review for suspicious plugin activation activity |
Disclaimer: HackersRadar reports on cybersecurity threats and incidents for informational and awareness purposes only. We do not engage in hacking activities, data exfiltration, or the hosting or distribution of stolen or leaked information. All content is based on publicly available sources.



No Comment! Be the first one.