CVE-2025-2110

8.8 HIGH

📋 TL;DR

The WP Compress WordPress plugin has missing capability checks on AJAX functions, allowing authenticated users with Subscriber-level access or higher to access, modify, or delete sensitive plugin settings and configuration data. This vulnerability affects all versions up to 6.30.15 and can lead to information disclosure, functionality disruption, and potential site performance impact.

💻 Affected Systems

Products:
  • WP Compress – Instant Performance & Speed Optimization
Versions: All versions up to and including 6.30.15
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: All WordPress installations with vulnerable plugin versions are affected. The vulnerability requires authenticated access but only at Subscriber level or higher.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could retrieve sensitive configuration data, alter critical settings, delete optimization data, disrupt site performance, and potentially use this access as a foothold for further attacks.

🟠

Likely Case

Authenticated attackers would retrieve sensitive plugin configuration details and modify settings to disrupt image optimization functionality, potentially affecting site performance.

🟢

If Mitigated

With proper user role management and network segmentation, impact would be limited to authorized users only, though the vulnerability would still exist.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires authenticated access but only at the low-privilege Subscriber level. Attackers need to understand WordPress AJAX endpoints and plugin functionality.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 6.30.16 or later

Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3254259/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find WP Compress plugin. 4. Click 'Update Now' if update available. 5. If no update available, deactivate and delete plugin, then install latest version from WordPress repository.

🔧 Temporary Workarounds

Disable vulnerable AJAX endpoints

WordPress

Add code to functions.php to disable the vulnerable AJAX endpoints

add_action('init', function() { remove_action('wp_ajax_wp_compress_ajax', 'wp_compress_ajax_handler'); remove_action('wp_ajax_nopriv_wp_compress_ajax', 'wp_compress_ajax_handler'); });

🧯 If You Can't Patch

  • Deactivate the WP Compress plugin immediately
  • Implement strict user role management and review all user accounts with Subscriber-level access or higher

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel → Plugins → Installed Plugins → WP Compress version. If version is 6.30.15 or lower, you are vulnerable.

Check Version:

wp plugin list --name=wp-compress-image-optimizer --field=version

Verify Fix Applied:

After updating, verify plugin version is 6.30.16 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual AJAX requests to wp-admin/admin-ajax.php with action=wp_compress_ajax from Subscriber-level users
  • Multiple failed or successful AJAX requests to plugin endpoints from non-admin users

Network Indicators:

  • POST requests to /wp-admin/admin-ajax.php with wp_compress_ajax action parameter from unexpected user roles

SIEM Query:

source="wordpress_logs" action="admin-ajax" action_parameter="wp_compress_ajax" user_role="subscriber" | stats count by src_ip

🔗 References

📤 Share & Export