File System
wp-comments-posts.php(Note the plural ‘posts’).wp-config.phpanomalous ~6KB increase.- Presence of
wpos-analytics/directory.
The vulnerability stems from a malicious acquisition of the “Essential Plugin” portfolio. The new owner injected an arbitrary function call backdoor into the wpos-analytics module across over 30 WordPress plugins.
Key components of the backdoor:
fetch_ver_info(): Calls file_get_contents() on a malicious server and executes @unserialize() on the response.version_info_clean(): Executes arbitrary code using values from the unserialized remote data.permission_callback: __return_true.The backdoor phone-home mechanism connects to analytics.essentialplugin.com, downloading a file named wp-comments-posts.php (masquerading as wp-comments-post.php), which then injects PHP code into wp-config.php.
wp-config.php serving spam links and redirects, hidden from site administrators by targeting only Googlebot.File System
wp-comments-posts.php (Note the plural ‘posts’).wp-config.php anomalous ~6KB increase.wpos-analytics/ directory.Network
analytics.essentialplugin.com.title: Potential WordPress Essential Plugin Supply Chain Attackdescription: Detects malicious activity related to the Essential Plugin backdoor injection.status: experimentallogsource: category: web_server product: wordpressdetection: selection: url|contains: '/wp-comments-posts.php' condition: selectionlevel: criticalWebLogs| where RequestPath contains "wp-comments-posts.php"| summarize count() by ClientIP, UserAgent| order by count_ descwpos-analytics/ directory from each plugin.wp-config.php of injected PHP code (commonly appended to the require_once ABSPATH . 'wp-settings.php'; line).