Brevo Supply Chain Attack Serves ClickFix Malware to 100,000+ Websites via Hijacked Cloudflare CDN
Reach 50,000+ security professionals
Sponsor a newsletter slot and put your brand in front of CISOs, engineers, and IT decision-makers.
Attackers hijacked Brevo's Cloudflare account using a stolen API key hardcoded in application source code, deployed a malicious CDN Worker in minutes, and served ClickFix malware and WordPress backdoors to visitors of more than 100,000 customer websites for five and a half hours on September 14, 2026. The attack required no vulnerability in Brevo's application code and bypassed every standard file integrity check by operating entirely at the CDN edge.
The Brevo supply chain attack split into two simultaneous payloads. Unauthenticated visitors to any site embedding a Brevo form or chat widget received a full-screen fake Cloudflare verification dialog using the ClickFix technique, instructing them to paste and execute a Windows command that would install a second-stage malware payload. WordPress site administrators who had a Brevo widget on their site and were logged into WordPress at the time had a persistent PHP backdoor silently installed by their own browser, using their active administrator session to upload and activate a plugin that hides itself from the WordPress admin panel.
The malicious Worker removed Content Security Policy headers from all Brevo-zone responses, disabling browser-side integrity protections for the duration of the attack. Standard web application firewalls and endpoint agents had no file modification on origin servers to detect. Brevo revoked the compromised Cloudflare API key and took down malicious subdomains by September 15, but the WordPress backdoor persists on any site that was compromised and has not been manually removed.
Organizations with WordPress sites embedding any Brevo or Sendinblue widget must audit their plugin directories and access logs for the September 14 attack window. The backdoor, disguised as Web Media Optimizer, hides from the standard WordPress plugin list and copies itself to the must-use plugins directory for automatic execution on every page load.
How Did Attackers Compromise 100,000 Websites Through Brevo?
The attack vector was a Cloudflare API key with full account permissions that Brevo had hardcoded directly in its application source code. Attackers obtained the key, which had no expiration date and no scope restrictions, and used it to authenticate to the Cloudflare API with the same access level as Brevo's own operations team.
With full API access, attackers created a malicious Cloudflare Worker, a serverless function that intercepts and modifies HTTP responses at the CDN edge before they reach the end user. The Worker targeted four Brevo-owned domains: brevo.com, sendinblue.com, login/account/my/onboarding.brevo.com, and sibforms.com. It modified the JavaScript served from those domains to inject malicious payloads before handing responses to the browser. Critically, the Worker also removed Content Security Policy headers from every response, disabling the browser-level protection that would normally block execution of scripts from unauthorized domains.
Origin servers at Brevo were never touched. Standard file integrity monitoring tools that watch for changes to server-side files produced zero alerts because the files never changed. Brevo's CDN logs recorded every malicious response, but without real-time alerting on Worker deployments or edge-layer anomaly detection, the attack ran undetected for approximately 5.5 hours between 16:05 and 20:30 UTC.
Sansec, a web security firm that specializes in e-commerce malware, detected the attack through behavioral anomaly signals in external site scans and published research showing more than 100,000 websites were likely exposed. Brevo confirmed the incident the following day, revoked the compromised API key, deleted the malicious Worker and associated routes, and removed attacker-controlled hostnames from its DNS records.
The root cause is the same pattern documented in supply chain attacks against software build pipelines: long-lived credentials with excessive permissions stored in source code, accessible to anyone who obtains a copy of that code through a repository leak, a compromised developer machine, or a third-party service breach.
What Did the ClickFix Payload Do to Site Visitors?
Unauthenticated visitors to any of the more than 100,000 websites embedding a Brevo form or chat widget during the attack window encountered a full-screen overlay styled to mimic a Cloudflare browser verification page. The ClickFix technique has been observed in dozens of campaigns since early 2025 and relies on user compliance rather than any browser vulnerability.
The fake verification prompt instructed users to press Windows Key + R to open the Windows Run dialog, then paste a command from the clipboard that the malicious JavaScript had already placed there without any visible indicator. Users who followed the instructions executed attacker-supplied code with their own user-level Windows privileges. The ClickFix payloads in the Brevo attack delivered second-stage downloaders pointing to infrastructure at yelahaye.surf and corralos.beer/a412dkoq.js, though specific second-stage payload identification was not publicly confirmed at the time of writing.
Mac and Linux users visiting affected sites received the fake Cloudflare page but the ClickFix instructions are specific to Windows, reducing the impact on non-Windows users to a failed social engineering attempt rather than code execution.
For affected Windows users, the immediate remediation is to scan for any recently installed programs or scheduled tasks created around September 14, run an endpoint detection scan, and rotate any credentials that were active on the machine during the visit. If a user executed the ClickFix command, treat the machine as potentially compromised and initiate your standard incident response for endpoint malware.
Briefings like this, every morning before 9am.
Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.
How the WordPress Backdoor Installs Without Any User Interaction
The second payload targeted a specific high-value category of visitor: WordPress site administrators who were logged into their WordPress dashboard in the same browser session while visiting any Brevo-embedding page.
When the malicious Cloudflare Worker detected that a visitor had an active WordPress admin session, it injected JavaScript that silently sent two HTTP requests using the authenticated browser session. The first was a POST to /wp-admin/update.php?action=upload-plugin, uploading a malicious plugin archive named Web Media Optimizer from a Brevo-controlled distribution domain. WordPress treated this as a legitimate plugin upload because it originated from an authenticated admin session with a valid nonce token. The second request immediately activated the newly uploaded plugin via a GET to /wp-admin/plugins.php?action=activate. The sequence completed in under two seconds, producing no visible change in the WordPress dashboard.
Once active, the Web Media Optimizer backdoor took four immediate actions. It hid itself from the WordPress plugin listing by hooking the plugin display filter, making it invisible to administrators reviewing the Plugins page. It copied itself to /wp-content/mu-plugins/, the must-use plugins directory that WordPress loads automatically on every request regardless of which plugins are activated or deactivated. It stored a hardcoded authentication key that generates a valid WordPress administrator session without requiring the account password, giving attackers persistent login capability even if all passwords are rotated. Finally, it established a command-and-control beacon to glegchner.com/ads.php for instructions.
The backup JavaScript URL mechanism described in Sansec's research means the backdoor can fetch a new C2 address if the primary domain is taken down, adding resilience to the persistence mechanism.
Indicators of Compromise: Brevo Supply Chain Attack Artifacts
The following indicators cover the malicious CDN infrastructure, C2 domains, WordPress backdoor file hash, and HTTP request patterns associated with the September 14, 2026, attack. For WordPress administrators, the request pattern indicators are the most actionable: search your access logs for the plugin upload sequence and verify whether your site was targeted before the malicious Worker was removed.
Web Media Optimizer backdoor SHA-256: f359ab0d2f732b54dd3300065f4d6553f4df1b67454b71fd81197e26f02af4a8. Run find /var/www -name '*.php' -newer /etc/hostname to surface recently modified PHP files, then hash-check against this value. Check /wp-content/mu-plugins/ specifically, as the backdoor copies itself there for persistence even after the primary plugin directory entry is deleted.
Subscribe to unlock Indicators of Compromise
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
Sigma Detection Rules for the Brevo Supply Chain Attack
These rules detect the WordPress backdoor installation sequence and C2 beacon traffic associated with the Brevo supply chain attack. Both carry experimental status; validate against your web server and proxy log formats before enabling automatic blocking.
Subscribe to unlock Sigma Detection Rules
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
Subscribe to unlock Sigma Hunt Queries
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
Subscribe to unlock WAF Detection Rules
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
Why Third-Party Widget Supply Chain Risk Is a Structural Problem
The Brevo attack follows the same structural pattern as multiple recent supply chain incidents that targeted developer and marketing infrastructure: JFrog Artifactory's three-CVE backdoor chain that hit 51 percent of exposed instances and the credential exposure pathway documented in the GitLab path traversal attack that exposed credentials from customer pipelines. In each case, the attacker's leverage point was not a flaw in the end organization's security controls but a compromise of a shared service that those organizations trusted implicitly.
The CDN supply chain attack surface is particularly dangerous because the trust relationship is completely invisible to most organizations. A company that embeds a Brevo form widget has no way to inspect Brevo's Cloudflare account permissions, no ability to enforce Subresource Integrity on dynamically served scripts unless they control the embed code, and no mechanism to detect that the JavaScript they are serving changed at the CDN edge without touching any file on their origin server.
Three controls that would have prevented or dramatically limited the Brevo attack: First, Subresource Integrity (SRI) attributes on all third-party script tags. SRI causes the browser to hash-verify the downloaded script against a known value and refuse to execute it if the hash mismatches. An SRI-protected Brevo widget would have caused the browser to reject the modified script silently and simply not load the widget. Second, a strict Content Security Policy that explicitly lists permitted JavaScript execution origins. Even without SRI, a CSP that blocked execution of scripts from cdn10.sendibt1.com and the other attacker-controlled domains would have prevented both payloads from running. Third, short-lived, scoped API keys for all infrastructure services. A Cloudflare API token scoped only to cache purge and analytics operations cannot create Workers or modify routes, regardless of how it is obtained.
The market reality is that most marketing and analytics widgets are embedded without any integrity protections because the vendors explicitly want to serve dynamic, updateable JavaScript. Organizations that rely on these services are accepting implicit trust in the vendor's CDN security posture.
“The malicious Cloudflare Worker removed security headers such as Content-Security-Policy, bypassing integrity checks while leaving origin servers unmodified.”
Sansec Research, September 15, 2026
Remediation: How to Audit and Clean Compromised WordPress Sites
Remediation requires four distinct tracks: WordPress audit, endpoint response for ClickFix victims, CDN configuration hardening, and API key hygiene.
For WordPress sites that embed any Brevo, Sendinblue, or sibforms widget, complete every step in the WordPress track before considering the site clean. Patching Brevo's CDN configuration does nothing to remove a backdoor already installed on your WordPress server.
For end users who visited a Brevo-embedding site and may have followed the ClickFix instructions, treat the affected Windows machine as potentially compromised. The ClickFix payload installs a second-stage downloader and Brevo has not publicly confirmed whether credential-harvesting or ransomware deployment was the final payload in all observed cases.
Subscribe to unlock Remediation & Mitigation steps
Free subscribers unlock full IOC lists, Sigma detection rules, remediation steps, and every daily briefing.
The bottom line
The Brevo supply chain attack proves that a single hardcoded CDN API key can silently weaponize over 100,000 customer websites in under an hour. Standard file integrity monitoring, CSP headers, and WAFs all failed because the attack operated at the CDN edge. If your WordPress site embeds any Brevo or Sendinblue widget, check your access logs for plugin uploads on September 14, scan /wp-content/mu-plugins/ for the Web Media Optimizer backdoor, and rotate all WordPress admin passwords immediately.
This analysis is generic. create a free account to score threats like this against your own stack.
Frequently asked questions
What is the Brevo supply chain attack?
The Brevo supply chain attack is a September 14, 2026, incident in which attackers used a stolen Cloudflare API key found hardcoded in Brevo's source code to deploy a malicious Cloudflare Worker across brevo.com, sendinblue.com, and sibforms.com. The Worker modified CDN edge responses for approximately 5.5 hours, injecting ClickFix malware for regular visitors and silently installing a WordPress backdoor on sites whose logged-in administrators visited Brevo-embedding pages. Sansec estimated over 100,000 customer websites were exposed. Brevo revoked the compromised key and removed the malicious Worker by September 15, 2026.
How did attackers compromise Brevo's Cloudflare account?
Brevo confirmed that attackers obtained a long-lived Cloudflare API key that had been hardcoded directly in application source code with full account permissions. The exact method of key exfiltration was not publicly disclosed, though Brevo noted a separate SSO incident on September 10, 2026, four days before the supply chain attack. With the API key, attackers created a Cloudflare Worker that intercepted all responses from Brevo's zones and modified the JavaScript served to end users without touching any origin server files, making the compromise invisible to standard file integrity monitoring.
How do I know if my WordPress site was backdoored?
Check your WordPress access logs for a POST request to /wp-admin/update.php?action=upload-plugin followed within seconds by a GET request to /wp-admin/plugins.php?action=activate on September 14, 2026, between 16:05 and 20:30 UTC. If you see that sequence, a plugin was silently uploaded and activated using your logged-in administrator session. Next, look for a plugin named Web Media Optimizer in /wp-content/plugins/ and in the must-use plugins directory at /wp-content/mu-plugins/. The backdoor file has SHA-256 hash f359ab0d2f732b54dd3300065f4d6553f4df1b67454b71fd81197e26f02af4a8. Run a search for files modified on September 14 using find /var/www -name '*.php' -newer /etc/hostname -ls and review any unexpected PHP files.
What is ClickFix malware?
ClickFix is a social engineering technique that displays a fake browser or operating system dialog instructing users to press Windows Key + R, then paste and run a command that the attacker has placed in the clipboard. The command typically downloads and executes a second-stage payload such as an infostealer, a remote access trojan, or a ransomware dropper. In the Brevo attack, unauthenticated visitors to Brevo-embedding sites received a full-screen fake Cloudflare verification page with ClickFix instructions. Any user who followed the instructions likely executed attacker-supplied code with their own user-level privileges on their Windows machine.
What does the Web Media Optimizer backdoor do?
The Web Media Optimizer plugin is a malicious WordPress plugin installed by the Brevo supply chain attack. Once activated, it hides itself from the standard WordPress plugin list so it does not appear in the Plugins admin panel. It copies itself to the must-use plugins directory at /wp-content/mu-plugins/, ensuring it runs automatically on every page load even if the main plugin entry is deleted. The backdoor includes a hardcoded authentication key that allows attackers to generate a valid WordPress administrator login session without knowing the account password. It beacons to glegchner.com/ads.php for command-and-control instructions and injects JavaScript to serve ClickFix lures to future site visitors.
Was any Brevo customer account data stolen in this attack?
Brevo stated that its core platform infrastructure was not compromised. The attack specifically targeted the Cloudflare CDN layer that serves JavaScript to end users and customer websites, not Brevo's application servers, databases, email delivery infrastructure, API backend, or customer account data. Brevo confirmed that app.brevo.com, the Brevo API, and email delivery infrastructure were unaffected. However, any WordPress administrator who had a Brevo widget on their site and was logged in during the attack window may have had their WordPress installation compromised with a persistent backdoor, representing a risk to their own site data and visitor credentials.
How can I protect against CDN supply chain attacks?
Five controls significantly reduce CDN supply chain attack risk. First, implement Subresource Integrity (SRI) hashes on all third-party script tags so browsers reject modified scripts regardless of CDN compromise. Second, enforce a strict Content Security Policy that restricts which domains can execute JavaScript on your pages. Third, audit all third-party widgets and scripts embedded on your sites quarterly and remove any no longer in active use. Fourth, never hardcode API keys with broad permissions in source code; use short-lived tokens scoped to the minimum required permissions. Fifth, review your Cloudflare (or equivalent CDN) account for Workers, routes, and DNS records you did not create, and set up alerts for new Worker deployments.
How do I remove the Brevo supply chain attack backdoor from WordPress?
Take five steps in order. One: deactivate and delete the Web Media Optimizer plugin from both /wp-content/plugins/ and /wp-content/mu-plugins/ directories via the server filesystem, not through the WordPress admin panel (the backdoor hides itself from the panel). Two: rotate all WordPress administrator account passwords immediately. Three: check for any new administrator accounts created on September 14 and delete any your team did not create. Four: review all active sessions in your WordPress database's wp_usermeta table and invalidate any you cannot verify. Five: scan your WordPress installation with a server-side malware scanner such as MalCare or Wordfence CLI to identify any additional PHP files the backdoor may have dropped.
Sources & references
- BleepingComputer: Brevo supply-chain attack injected ClickFix scripts on customer sites
- Sansec: Brevo supply chain attack hits 100k+ sites with WordPress backdoors and ClickFix malware
- SecurityWeek: Brevo Supply Chain Attack Injects Malware Into 100,000 Websites
- GBHackers: Hackers Turn Brevo Widgets Into Malware Delivery Channel Across 100,000+ Websites
Free resources
Critical CVE Reference Card 2025–2026
25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.
Ransomware Incident Response Playbook
Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.
Daily briefings + Google Top Stories in one step.
Enter your email and we'll subscribe you to the daily briefing and add Decryption Digest to your Google Search feed at the same time.

Founder & Cybersecurity Evangelist, Decryption Digest
Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals every morning.
