Skip to main content

WP Compress EUVDEUVD-2026-102793

| CVE-2026-104755 MEDIUM
Improper Privilege Management (CWE-269)
2026-10-16 Wordfence GHSA-869x-hw98-gf6f
4.8
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Leak plugin API key via wpc_send_critical_remote nopriv AJAX
  2. Delivery
    Replay apikey to start_comms dispatcher
  3. Exploit
    Write arbitrary permission keys into WPS_IC_SETTINGS
  4. Execution
    Trigger checkAndAddCaps to grant manage_wpc_settings
  5. Impact
    Gain 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

WP Compress – Instant Performance & Speed Optimization 0 ≤7.25.00

Affected Packages

euvd wp_compress_instant_performance_speed_optimization no fix

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

Vendor (Wordfence) PRIMARY 4.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 4.8 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

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

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Medium
popular WordPress performance plugin, common but not on every site
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

CVE-2024-50498 CRITICAL POC
10.0 Oct 28

Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy