CVE-2021-24931

9.8 CRITICAL

📋 TL;DR

This vulnerability allows attackers to execute arbitrary SQL commands on WordPress sites running the Secure Copy Content Protection and Content Locking plugin. Both unauthenticated and authenticated users can exploit it via the ays_sccp_results_export_file AJAX action. This affects all WordPress installations with vulnerable plugin versions.

💻 Affected Systems

Products:
  • WordPress Secure Copy Content Protection and Content Locking plugin
Versions: All versions before 2.8.2
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability exists in default plugin configuration. No special configuration required for exploitation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete database compromise leading to data theft, privilege escalation, and potential remote code execution via database functions.

🟠

Likely Case

Data extraction from WordPress database including user credentials, sensitive content, and plugin data.

🟢

If Mitigated

Limited impact with proper input validation and parameterized queries in place.

🌐 Internet-Facing: HIGH - Exploitable by unauthenticated users over the internet via AJAX endpoints.
🏢 Internal Only: MEDIUM - Still exploitable by authenticated users but requires some level of access.

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: CONFIRMED
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Public exploit code available on Packet Storm Security. Simple SQL injection via sccp_id parameter.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.8.2

Vendor Advisory: https://wordpress.org/plugins/secure-copy-content-protection/#developers

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Secure Copy Content Protection and Content Locking'. 4. Click 'Update Now' if available. 5. Alternatively, download version 2.8.2+ from WordPress repository and manually update.

🔧 Temporary Workarounds

Disable vulnerable AJAX endpoint

all

Remove or restrict access to the ays_sccp_results_export_file AJAX action

Add to theme's functions.php or custom plugin: remove_action('wp_ajax_ays_sccp_results_export_file', 'ays_sccp_results_export_file'); remove_action('wp_ajax_nopriv_ays_sccp_results_export_file', 'ays_sccp_results_export_file');

Web Application Firewall rule

all

Block SQL injection patterns targeting sccp_id parameter

WAF-specific configuration to block: *?action=ays_sccp_results_export_file*sccp_id=*[SQL injection patterns]*

🧯 If You Can't Patch

  • Disable the Secure Copy Content Protection and Content Locking plugin immediately
  • Implement strict input validation and sanitization for all user-supplied parameters in custom code

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for 'Secure Copy Content Protection and Content Locking' version number

Check Version:

wp plugin list --name='secure-copy-content-protection' --field=version (if WP-CLI installed)

Verify Fix Applied:

Confirm plugin version is 2.8.2 or higher in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to /wp-admin/admin-ajax.php with action=ays_sccp_results_export_file
  • SQL error messages in WordPress debug logs containing sccp_id parameter

Network Indicators:

  • HTTP POST requests with SQL injection patterns in sccp_id parameter
  • Multiple rapid requests to admin-ajax.php endpoint

SIEM Query:

source="wordpress.log" AND "ays_sccp_results_export_file" AND ("SQL" OR "syntax" OR "union" OR "select" OR "sleep(")

🔗 References

📤 Share & Export