37

20+

30,000+


Understanding when each phase occurred helps identify detection windows and response opportunities that were missed.


UpdraftPlus is one of the most popular WordPress backup and migration plugins, with millions of active installations. In June 2026, a critical vulnerability – CVE-2026-10795 – was discovered in the plugin’s UpdraftCentral remote-control component.

A proof-of-concept was made public in early June. Within days, automated mass-exploitation campaigns began scanning the internet for vulnerable UpdraftPlus installations. According to Wordfence telemetry, over 8,000 exploitation attempts were blocked within the first 24 hours of public disclosure on 11 June 2026.

The targeted website ran a vulnerable version of UpdraftPlus. Security patches were released, and critical security warnings were sent to site owners—but despite these warnings, the update was never applied. The security email arrived but never reached the technical team.


Initial Access and Reconnaissance

Once the attacker exploited CVE-2026-10795, they gained the ability to place files on the server. Rather than immediately launching a full compromise, the attacker spent 3–4 days performing reconnaissance: mapping installed plugins, checking for security tools, and enumerating the site structure.

Database logs recovered during investigation revealed 50 reconnaissance commands over this period. The attacker was being cautious—testing different approaches, checking which functions were available, and confirming that a security plugin that could detect their activity wasn’t present.

Establishing Persistence

Once reconnaissance was complete, the attacker deployed 13 webshells—small backdoor scripts hidden in WordPress upload directories and plugin folders. These weren’t crudely named; they were disguised with legitimate-sounding filenames (options-tar.php, postbox-64.php, oauth-edit.php).

Each webshell was designed to be activated by a specific HTTP cookie. The attacker would make a request with a cookie containing a special value, and the script would execute arbitrary commands. This persistence mechanism allowed the attacker to maintain access even if CVE-2026-10795 was eventually patched.

Weaponisation and Escalation

With persistence established, the attacker deployed more sophisticated tools. A primary beacon was installed—a heavily obfuscated 18-kilobyte PHP script that would contact command-and-control servers and receive instructions.

This script performed server fingerprinting via automated web server scanning and then contacted a remote server to download additional payloads. The payloads included credential stealers and SEO spam generators.

In a single day, the attacker deployed 21 additional webshells across seven different plugins using an automated script. The speed and consistency of this deployment suggests the attacker was using automated tools rather than manual infiltration.

Monetisation

By day six, the attacker shifted focus to profit. A password exfiltrator was deployed to capture administrator credentials. Simultaneously, an SEO spam generator was installed that created thousands of pages filled with spam content and hosted them on the legitimate website.

These fake pages were indexed by search engines, and the attacker profited by embedding affiliate links and promoted content. Over 30,000 spam pages were indexed before the compromise was detected, damaging the site’s search engine reputation.


Technical Deep Dive: Obfuscation and Evasion

One of the most sophisticated aspects of this attack was the obfuscation used to hide the attacker’s code. When we examined the primary beacon script, we discovered it wasn’t just encrypted—it was wrapped in 26 layers of nested encoding.

The attacker also used advanced evasion techniques. The primary beacon performed server fingerprinting to detect security monitoring tools. It checked system configuration and decided whether to activate based on the server’s


Detection and Investigation: Following the Breadcrumbs

The compromise wasn’t detected by security tools – it was discovered through manual investigation after staff noticed unusual website behaviour. Once detected, forensic analysis revealed multiple evidence categories.

File system analysis showed the 37 malicious files and their metadata. Database analysis was particularly revealing: the WordPress database contained a table that logged all command-and-control communications. By deserialising this data, investigators recovered 50 complete C2 commands with timestamps, showing the exact progression of the attack.

The C2 infrastructure was distributed across multiple domains and was accessed from over 20 different attacker IP addresses. This distribution suggests multiple threat actors or a criminal-as-a-service operation where the initial access was sold to others who then deployed different payloads.


Perhaps the most revealing finding was that a critical security alert email had been received by the organisation three days before exploitation began. The email, sent by the UpdraftPlus vendor, contained urgent warnings about CVE-2026-10795 and links to patches.

This communication breakdown represents one of the most common security failures in organisations: critical technical warnings fail to reach technical people. Emails are marked as spam, filtered by security tools, misdirected, or deprioritised amongst high-volume messages. The result is a failure to act on actionable intelligence.


  • Patches aren’t optional: Apply security patches within 48 hours of release for critical vulnerabilities. The window between CVE-2026-10795 disclosure (11 June) and this site’s compromise (18 June) was only seven days. Delay of even a few days creates an exploitation window.
  • Monitor file system changes: Implement real-time file integrity monitoring. 37 malicious files should never silently appear without alerts.
  • Enable comprehensive logging: Web server access logs, WordPress audit logs, and database logs must be enabled and monitored. Without them, forensic investigation becomes nearly impossible. In this case, database C2 logs were the only evidence of the attack progression.
  • Assume breach: Design systems assuming compromise is inevitable. Multiple access methods (webshells, backdoor accounts) make recovery harder
  • Create security alert routing: Security warnings from vendors and security teams must reach technical staff within hours, not days. Implement structured escalation.
  • Fund security tools: This attack would have been detected immediately by website security plugins with file integrity monitoring and user activity alerts.
  • Shared hosting has tradeoffs: Shared hosting is cost-effective but limits security control. Evaluate whether critical applications should be hosted elsewhere.

What made this attack successful was a combination of small failures: a patch that wasn’t applied, a security email that wasn’t routed correctly, the absence of file monitoring, and disabled server logging that prevented real-time detection.

The WordPress ecosystem includes millions of websites running on shared hosting with varying degrees of security. Each unpatched plugin, misconfigured email routing, and missing security control creates an opportunity for attackers using automated scanning and exploitation tools.

The good news: all these failures are preventable. The cost of prevention is far lower than the cost of remediation, recovery, and the reputational damage of a public compromise.

WordPress offers the ability to automatically update plugins, a feature that reduces the burden of manual patch management. However, this capability introduces a risk: a faulty update could cause an outage on a live website, potentially impacting business operations.

This trade-off – between the risk of a bad update and the risk of a security breach – is becoming increasingly untenable. The window between public vulnerability disclosure and mass exploitation is collapsing. CVE-2026-10795 saw 8,000 exploitation attempts within 24 hours of disclosure. Within seven days, this site was compromised as part of a mass-exploitation wave.

Technology leaders will increasingly face a binary choice: accept the risk of an outage caused by an automatic update, or accept the certainty of a breach from an unpatched vulnerability. As exploitation timelines shrink from weeks to days to hours, the calculus is shifting. An outage from a bad update is recoverable; a breach from an unpatched vulnerability may not be.