CLOSED fri 19th dec – open again mon 5th jan 2026

an Arden IT company

How to Fix the EssentialPlugin WordPress Backdoor

If your WordPress site is running an EssentialPlugin product (such as Post Grid and Filter Ultimate), it may be vulnerable to a severe supply chain attack. To secure your site, you must immediately remove the affected plugins, delete the malicious wp-comments-posts.php file, remove injected code from wp-config.php, and block the attacker’s external tracking URL.

This guide outlines exactly how the EssentialPlugin backdoor works, how to clean up an infected WordPress installation, and how to block the malicious external requests to protect your website.

What is the EssentialPlugin Backdoor?

In early 2025, a buyer acquired the EssentialPlugin portfolio of 26+ WordPress plugins. In August 2025, the new owner embedded a hidden backdoor into the plugins’ wpos-analytics module. Because the malicious code looked like a standard analytics opt-in, it evaded detection for months.

When the backdoor activated, it began “phoning home” to analytics.essentialplugin.com. The attacker’s server then instructed the plugin to download and drop a fake WordPress core file named wp-comments-posts.php (designed to blend in with the legitimate wp-comments-post.php file).

Using this fake file, the backdoor injected massive blocks of malicious PHP into the site’s wp-config.php file, primarily to serve hidden SEO spam to search engine crawlers like Googlebot.

Step-by-Step Cleanup Guide

If you suspect your site has been compromised by this backdoor, follow these steps to audit and clean your files:

  1. Remove all EssentialPlugin products: Log into your site (or use SFTP) and completely delete any plugin authored by EssentialPlugin. Simply deactivating them is not enough, as the malicious code remains on your server.
  2. Delete wp-comments-posts.php: Check your WordPress web root directory (where wp-config.php lives). If you see a file named wp-comments-posts.php (with an “s” at the end of “posts”), delete it immediately.
  3. Clean your wp-config.php file: Open your wp-config.php file and look for large blocks of obfuscated code or unexpected PHP near the require_once ABSPATH . 'wp-settings.php' line. Remove the malicious injections, or replace the file entirely with a clean backup, ensuring your database credentials remain intact.
  4. Run a malware scan: Run a reputable WordPress security scanner to check for any secondary backdoors, rogue admin users, or hidden spam pages that the attacker may have left behind.

How to Block analytics.essentialplugin.com in WordPress

If you are managing multiple sites and need an immediate stopgap measure while you transition away from EssentialPlugin tools, you can block the plugin from communicating with the attacker’s server.

By adding a Must-Use (MU) plugin, you can intercept and block any WordPress HTTP requests going to analytics.essentialplugin.com.

Create a file named block-essentialplugin-analytics.php and upload it to your wp-content/mu-plugins/ directory:

<?php
/**
 * Plugin Name: Block EssentialPlugin Analytics Endpoint
 * Description: Blocks outbound HTTP requests from WordPress to analytics.essentialplugin.com.
 * Author: Arden Web Ops
 * Version: 1.0.0
 */

add_filter( 'pre_http_request', function( $pre, $args, $url ) {
    $host = parse_url( $url, PHP_URL_HOST );

    if ( ! $host ) {
        return $pre;
    }

    $host = strtolower( $host );

    // Block exact domain and any future subdomains
    if ( $host === 'analytics.essentialplugin.com' || str_ends_with( $host, '.analytics.essentialplugin.com' ) ) {
        return new WP_Error(
            'blocked_essentialplugin_analytics',
            'HTTP request to analytics.essentialplugin.com blocked by mu-plugin.'
        );
    }

    return $pre;
}, 10, 3 );

This snippet ensures that the WordPress HTTP API will immediately reject any outbound connection to the malicious domain.

Frequently Asked Questions (FAQ)

Is blocking the domain enough to secure my site?

No. Blocking the external HTTP request prevents the plugin from fetching new malicious payloads via the WordPress API. However, if the backdoor has already dropped wp-comments-posts.php or modified your configuration files, blocking the domain will not remove the existing malware.

Do I need to delete the EssentialPlugin plugins completely?

WordPress security experts and the WordPress.org Plugin Team strongly advise completely removing the affected plugins. Because the backdoor was intentionally added by the developer, no current version of these plugins can be trusted.

Why didn’t I notice the SEO spam on my website?

The injected code in wp-config.php was designed to be “cloaked”. It specifically checks the visitor’s user-agent and only serves the spam content to search engine bots (like Googlebot). Regular visitors and logged-in administrators see the normal website, which is why the infection went unnoticed for months.

Disclaimer: The code snippet and mitigation steps provided in this article are intended for educational and immediate triage purposes only. Using a code snippet to block the analytics endpoint does not guarantee your site is secure from pre-existing malware or alternative attack vectors. The only recommended permanent fix is to completely remove all compromised plugins and conduct a professional security audit. Use these steps at your own risk. If you need professional assistance securing your website, contact our WordPress management team.