Supply Chain Attack on WordPress Ecosystem: How a CDN Compromise Exposed 1.2 Million Sites

A sophisticated supply chain attack has struck the WordPress ecosystem, targeting the widely used OptinMonster plugin and exposing over 1.2 million websites to potential takeover. The breach also extends to TrustPulse and PushEngage, both products under the Awesome Motive umbrella, significantly expanding the blast radius across the global WordPress landscape.

Unlike traditional server-side breaches, this campaign utilized a highly efficient upstream compromise. Attackers tampered with legitimate JavaScript files hosted on Awesome Motive’s own Content Delivery Network (CDN). By poisoning the source files, the malicious code was automatically distributed to every downstream site requesting those scripts, bypassing individual server security perimeters. This methodology is reminiscent of the 2024 Polyfill supply chain attack, where a single point of failure facilitated mass exploitation.

Technical Analysis of the Malicious Payload

The injected JavaScript is a masterclass in evasion. Rather than targeting all users, the payload executes a conditional check: it only triggers when a logged-in WordPress administrator accesses the site. This tactical decision allows the malware to remain invisible to standard visitors and, crucially, to automated security scanners or “headless” browsers that do not maintain an active admin session.

Once the environment is confirmed as an administrative session, the script initiates several high-velocity stages:

  • Reconnaissance & Credential Harvesting: The script identifies WordPress directory structures and extracts critical REST API and AJAX nonces.
  • Unauthorized Account Creation: Utilizing both the WordPress REST API and traditional admin workflows, the script creates multiple administrator accounts. To ensure persistence, it plants a static account (developer_api1) alongside various randomized usernames (e.g., dev_xxxxxx).
  • Stealth Backdoor Deployment: Following account creation, the malware installs a hidden plugin designed to remain invisible within both the WordPress dashboard and the REST API.

According to detailed forensic research published by the Sansec Forensics Team, this backdoor provides unauthenticated Remote Code Execution (RCE). This allows attackers to execute arbitrary PHP code and system-level commands directly on the host server.

Exfiltration and Command-and-Control (C2)

To avoid detection by network monitoring tools, stolen site metadata and new credentials are encrypted using an XOR cipher and encoded in Base64. This data is then transmitted to a C2 infrastructure hosted at tidio[.]cc—a domain specifically crafted to impersonate the legitimate service tidio[.]com. The malware employs several fallback delivery methods, including sendBeacon, fetch, and even image beacons, ensuring the data reaches the attacker even if certain network requests are blocked.

The scale of the attack is evident in the data from Patchstack, which recorded over 270 attempts to forge rogue administrator accounts within a mere 48-hour window. Investigations suggest the malicious infrastructure was staged as early as April 2026, with the active infection window spanning from June 12 to June 14, 2026.

Root Cause and Remediation

Awesome Motive has acknowledged the breach, attributing the incident to a compromised CDN API key. This key was reportedly exfiltrated via a vulnerability in the UpdraftPlus plugin on an internal system. While the company has since revoked the compromised credentials and purged the tainted CDN caches, the “silent” nature of the injection means that any administrator who loaded the script during the infection window may have already been compromised.

Crucial Security Advice: Simply updating your plugins is insufficient. Because the attackers have likely achieved persistence through new admin accounts and hidden backdoors, site owners must perform a deep forensic audit:

  1. Audit Users: Manually inspect all administrator accounts and remove any unrecognized users.
  2. File Integrity Check: Scan the /wp-content/plugins/ directory for suspicious or disguised plugins (e.g., content-delivery-helper or database-optimizer).
  3. Credential Rotation: Rotate all database passwords, API keys, and salts immediately.
  4. Server-Side Scanning: Utilize professional security tools to look for web shells and unauthorized PHP files.

Indicators of Compromise (IOCs)

Category Indicator Details
C2 Domain tidio[.]cc Malicious command-and-control domain
C2 IP 84[.]201[.]6[.]54 Hosted on Ultahost (AS214036)
C2 Endpoint tidio[.]cc/cdn-cgi/p Data exfiltration (OptinMonster/TrustPulse)
C2 Endpoint tidio[.]cc/cdn-cgi/l Payload generation
XOR Key jX9kM2nP4qR6sT8v Used for encoding stolen data
Backdoor Marker WPM File Manager & Shell Malicious web shell interface
Rogue Admin developer_api1 Fixed attacker-created admin account
Malicious Plugin content-delivery-helper Disguised plugin (v2.7.1)
Malicious Plugin database-optimizer Disguised plugin (v2.9.4)

Note: IP addresses and domains have been defanged (e.g., using [.] instead of .) to prevent accidental execution. Please re-fang these indicators only within a secure threat intelligence environment.

C jI q SxY

Related Articles

Back to top button