Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLeak plugin API key via wpc_send_critical_remote nopriv AJAX
-
DeliveryReplay apikey to start_comms dispatcher
-
ExploitWrite arbitrary permission keys into WPS_IC_SETTINGS
-
ExecutionTrigger checkAndAddCaps to grant manage_wpc_settings
-
ImpactGain plugin-administrator control of CDN/critical-CSS
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the WP Compress - Instant Performance & Speed Optimization plugin to be installed and active at version 7.25.00 or earlier. The attacker needs no WordPress account: the stored plugin API key is first harvested through the unauthenticated wpc_send_critical_remote nopriv AJAX action, but ONLY when the external critical-CSS service returns an apiResults field, causing initCritical() to echo the key via wp_send_json_success - this external dependency is the primary limiting factor and the reason for AC:H. Once the key is obtained, it is replayed as the apikey parameter to the start_comms dispatcher (hooked on every front-end request), which performs no capability check and no nonce verification, passing group/setting/value straight to change_setting() with no allow-list. The resulting control is scoped to the plugin's optimization, CDN, and critical-CSS settings surfaces rather than the full WordPress site. |
| Impact | This is a moderate-severity (CVSS 4.8) unauthenticated privilege-escalation chain in a WordPress plugin, and the signals are mostly consistent rather than conflicting. The CVSS vector (AV:N/PR:N/UI:N) confirms a network-reachable flaw requiring no authentication or user interaction, which is inherently attractive for mass, automated scanning of WordPress sites. The tempering signal is AC:H: the full chain depends on the external critical-CSS service returning an apiResults field so that initCritical() echoes the stored API key back - a condition not fully under the attacker's control, which is why impact is scored only C:L/I:L/A:N (control is confined to the plugin's optimization/CDN/critical-CSS settings rather than full site takeover). No EPSS score was provided in the input, so exploitation probability cannot be quantified; this is a genuine data gap, not a low score. It is NOT in CISA KEV and no public exploit was supplied, so exploitation status is 'no public exploit identified at time of analysis.' Net assessment: a credible, prioritize-for-patching issue because it is unauthenticated and WordPress plugins are heavily scanned, but not an emergency - the medium CVSS, high attack complexity, limited (plugin-scoped) impact, and absence of KEV/POC/EPSS evidence argue against treating it as actively weaponized. |
| Exploit ScenarioDerived | An unauthenticated attacker first calls the wpc_send_critical_remote nopriv AJAX action, which under the right service response causes the plugin to echo its stored API key back in a wp_send_json_success response. The attacker then supplies that leaked apikey on an ordinary front-end request to the start_comms dispatcher, writing arbitrary permission keys into WPS_IC_SETTINGS so that checkAndAddCaps() grants a low-privilege or anonymous caller the manage_wpc_settings capability, yielding plugin-administrator-equivalent control. No public proof-of-concept was provided in the input, and the chain's reliance on the external critical-CSS service response (AC:H) adds uncertainty to reliability. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Unauthenticated privilege escalation in the WP Compress - Instant Performance & Speed Optimization plugin for WordPress (all versions up to and including 7.25.00) allows remote attackers with no WordPress account to gain plugin-administrator-equivalent control over the plugin's optimization, CDN and critical-CSS settings. The chain is two-stage: the stored plugin API key is first leaked by the unauthenticated wpc_send_critical_remote nopriv AJAX action, but only when the external critical-CSS service returns an apiResults field that causes initCritical() to echo the key via wp_send_json_success; the harvested key is then replayed as the apikey parameter to the start_comms dispatcher, which performs no capability check and no nonce verification before passing attacker-controlled group, setting and value parameters into change_setting(), writing them into the WPS_IC_SETTINGS option without an allow-list and causing checkAndAddCaps() to grant the manage_wpc_settings capability to arbitrary roles, including Subscriber. The assessed severity is moderate - CVSS 4.8 (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N) - unauthenticated per the vector (PR:N) but rated high complexity because the API-key disclosure depends on the external critical-CSS service response; impact is scoped to the plugin's settings surfaces rather than full WordPress site administration, and no public exploit code and no confirmed active exploitation (not in CISA KEV) were identified at time of analysis.
RemediationAI
Vendor-released patch: 7.26.00 - update the WP Compress - Instant Performance & Speed Optimization plugin to at least version 7.26.00, which is the release published in the Trac changeset that closes the 7.25.00 code (https://plugins.trac.wordpress.org/changeset?reponame=&new=3734610%40wp-compress-image-optimizer%2Ftags%2F7.26.00&old=3723132%40wp-compress-image-optimizer%2Ftags%2F7.25.00); the advisory entry is at https://www.wordfence.com/threat-intel/vulnerabilities/id/67e9bfb8-b274-422a-a50d-a6b6b24bb193?source=cve. Because the plugin must be assumed compromised while unpatched, also audit the WPS_IC_SETTINGS option in wp_options for injected keys and review the role/capability table for any role that unexpectedly holds manage_wpc_settings (the Subscriber role in particular), removing the capability and the injected settings; note that a successful attacker could equally have written to the plugin's optimization, CDN and critical-CSS surfaces, so those configurations should be reviewed and re-saved from a trusted admin session. If an immediate upgrade is not possible, the practical compensating controls are all WAF/edge-level and each carries a trade-off: block unauthenticated POSTs to admin-ajax.php with action=wpc_send_critical_remote (the key-disclosure primitive), which may break automatic critical-CSS regeneration when it is invoked without a logged-in user; and block front-end requests carrying an apikey parameter destined for the start_comms dispatcher, which may interfere with legitimate plugin-to-service communication. Deactivating the plugin entirely until the 7.26.00 update can be applied is the only mitigation that removes both stages of the chain, at the cost of losing image optimization and CDN/critical-CSS delivery; rotating or resetting the plugin API key is advisable as a post-compromise hygiene step but, based on the described code, the key remains retrievable through the same unauthenticated AJAX path while the vulnerable version is installed, so it is not a substitute for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected component is the WordPress plugin 'WP Compress - Instant Performance & Speed Optimization' (CPE cpe:2.3:a:aresit:wp_compress_-_instant_performance_&_speed_optimization, vendor Aresit). Root cause class is CWE-269 (Improper Privilege Management): authorization decisions are made on a caller-supplied secret rather than on a WordPress capability check. Specifically, wps_ic_comms::start_comms (comms.class.php line 49 in the 7.10.03 tag referenced in the advisory) is hooked on every front-end request and gates access solely by comparing the request's apikey parameter against the stored plugin API key; there is no current_user_can() check and no check_ajax_referer()/nonce verification. Once that comparison passes, the unvalidated group, setting and value parameters flow into change_setting() (comms.class.php line 1042), which writes them into the WPS_IC_SETTINGS option with no allow-list restricting which keys may be written. Because the plugin's user-capability routine wps_ic_users::checkAndAddCaps() (users.class.php line 30) later reads those settings to decide role grants, an attacker can inject permission keys that cause any WordPress role - including Subscriber - to be granted the manage_wpc_settings capability. The authorization secret itself is exposed without authentication: the critical-CSS subsystem (addons/criticalCss/criticalCss.php line 409, with the AJAX entry point at ajax.class.php line 816) registers wpc_send_critical_remote as a nopriv AJAX action, and when the external critical-CSS service response contains an apiResults field, initCritical() returns the stored plugin API key in a wp_send_json_success response to the caller, completing the exploit chain entirely without a WordPress login. The multi-source data (Wordfence advisory, Trac source links and the 7.25.00→7.26.00 changeset) is internally consistent with this assessment, and the CVSS vector PR:N/AC:H reflects both the unauthenticated reachability and the external-service dependency that makes key disclosure probabilistic rather than deterministic.
Know when Wordpress Plugin gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Fully network-reachable and unauthenticated (AV:N/PR:N/UI:N), but AC:H because the key-leak step depends on the external critical-CSS service returning apiResults; impact is plugin-scoped, so C:L/I:L/A:N.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The WP Compress - Instant Performance & Speed Optimization plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 7.25.00 The vulnerability exists because the start_comms dispatcher (wps_ic_comms::start_comms), hooked on every front-end request, gates access only by comparing the caller-supplied apikey parameter against the stored plugin API key with no WordPress capability check and no nonce verification, then passes the unvalidated group, setting, and value parameters directly to change_setting(), which writes them into the WPS_IC_SETTINGS option without an allow-list. This makes it possible for unauthenticated attackers to write arbitrary permission keys into the plugin's settings, causing wps_ic_users::checkAndAddCaps() to grant any WordPress role - including Subscriber - the manage_wpc_settings capability and thereby achieve plugin-administrator-equivalent control over the plugin's optimization, CDN, and critical-CSS surfaces. The API key required to pass the authorization check can itself be obtained without authentication via the wpc_send_critical_remote nopriv AJAX action: when the external critical-CSS service returns an apiResults field, initCritical() echoes the stored plugin API key back to the caller in a wp_send_json_success response, completing the exploit chain entirely without a WordPress login.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
EUVD-2026-102793
GHSA-869x-hw98-gf6f
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB