How an Attacker Compromised 400,000 WordPress Sites via Purchased Plugins

By

How the Flippa Plugin Backdoor Attack Unfolded

In a sophisticated supply chain assault, a malicious actor acquired over 30 popular WordPress plugins through the Flippa marketplace, paid a six-figure sum, and systematically embedded a PHP deserialization backdoor into the initial code commit. After an eight-month dormancy, the attacker triggered the backdoor across roughly 400,000 active installations. The command-and-control (C2) infrastructure relied on Ethereum smart contracts to remain stealthy. This guide dissects each phase of the attack, highlighting the tactics and tools used, so you can better defend your WordPress ecosystem.

How an Attacker Compromised 400,000 WordPress Sites via Purchased Plugins
Source: www.infoq.com

What You Need (From the Attacker’s Perspective)

Step-by-Step Breakdown of the Attack

Step 1: Acquire Established WordPress Plugins

The attacker scanned Flippa for plugins with high user counts (tens of thousands of installations) and reputable histories. They purchased 30+ plugins for a combined six-figure amount, transferring ownership through the marketplace. Because WordPress.org lacks a formal verification process for ownership transfers, no security review was triggered. The attacker now controlled the update channels for these plugins, allowing them to push malicious code to every site running the purchased versions.

Step 2: Embed a Hidden Backdoor

Using a local development environment, the attacker added a PHP deserialization backdoor inside the first code commit after acquisition. The payload was obfuscated among legitimate plugin functionality – often within a helper function or an obscure configuration file. The backdoor would execute only when a specific serialized object was posted to a hidden endpoint, making it invisible during routine code reviews. The malicious commit was uploaded to the plugin repository on WordPress.org via the standard update mechanism.

Step 3: Wait for the Right Moment

Once the backdoored version was live, the attacker waited eight months. During this period, the plugins continued to receive normal updates and feature enhancements, masking the dormant threat. This delay served two purposes: it let hundreds of thousands of sites automatically install the compromised update via the WordPress auto-updater, and it reduced suspicion – users rarely examine code changes that are months old.

Step 4: Activate the Backdoor Remotely

After the waiting period, the attacker sent a specially crafted HTTP request containing a serialized PHP object to each compromised plugin’s endpoint. The deserialization vulnerability within the plugin code processed the object, triggered the backdoor, and granted remote code execution on the target server. The attacker could now harvest credentials, inject additional malware, or deface sites. Because the trigger was a simple web request, no further plugin modifications were needed – the backdoor remained on the server without leaving traces in the plugin’s file integrity.

How an Attacker Compromised 400,000 WordPress Sites via Purchased Plugins
Source: www.infoq.com

Step 5: Leverage Ethereum Smart Contracts for Command and Control

To avoid conventional DNS-based C2 detection, the attacker encoded the backdoor’s command-and-control server address inside an Ethereum smart contract. Each infected site would query the blockchain (using services like Infura or Etherscan) to retrieve the current C2 endpoint. This approach made the infrastructure highly resilient: the attacker could swap server addresses by updating a single smart contract variable, and the blockchain’s decentralized nature made blocking or takedown extremely difficult. The use of smart contracts also masked the attacker’s identity behind pseudonymous wallet addresses.

Tips for Plugin Developers and WordPress Site Owners

By understanding the attacker’s playbook, you can strengthen your defenses against supply chain attacks that exploit the trust placed in established plugins and marketplace inertia.

Related Articles

Recommended

Discover More

Eccentric Training: Build Muscle in Minutes Without Gym StrainBehind the Scenes: Making Documentaries About Open Source SoftwareVECT Ransomware's Fatal Flaw: Encryption Bug Turns Malware into Unrecoverable Wiper for Enterprise DataSite Search Crisis: Why 50% of Users Abandon Your Site for Google – And How to Fix ItMastering GitHub Copilot CLI: Interactive vs Non-Interactive Modes – A Step-by-Step Guide