CVE-2019-12240

9.8 CRITICAL

📋 TL;DR

CVE-2019-12240 is an insecure deserialization vulnerability in the Virim WordPress plugin that allows attackers to execute arbitrary code on affected websites. This affects WordPress sites running Virim plugin version 0.4, potentially leading to complete system compromise. Attackers can exploit this without authentication by sending specially crafted requests to the vulnerable graph.php endpoint.

💻 Affected Systems

Products:
  • WordPress Virim Plugin
Versions: Version 0.4
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects WordPress installations with the Virim plugin installed and activated. The vulnerable graph.php file is accessible via web requests.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server takeover with remote code execution, data theft, website defacement, and installation of persistent backdoors.

🟠

Likely Case

Website compromise leading to malware injection, credential theft, and unauthorized administrative access to the WordPress installation.

🟢

If Mitigated

Limited impact with proper input validation and deserialization controls in place, potentially reduced to denial of service.

🌐 Internet-Facing: HIGH - WordPress sites are typically internet-facing and the vulnerability requires no authentication.
🏢 Internal Only: LOW - This primarily affects public-facing WordPress installations, though internal WordPress sites could also be vulnerable.

🎯 Exploit Status

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

Exploitation is straightforward with publicly available proof-of-concept code. Attackers can send malicious serialized data via s_values, t_values, or c_values parameters.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version 0.5 or later

Vendor Advisory: https://wordpress.org/plugins/virim/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Virim plugin and click 'Update Now'. 4. Alternatively, delete the plugin and install the latest version from WordPress repository.

🔧 Temporary Workarounds

Disable Virim Plugin

all

Temporarily deactivate the vulnerable plugin until patching is possible.

wp plugin deactivate virim

Block Access to graph.php

linux

Use web server configuration to block access to the vulnerable file.

# Apache: <Location /wp-content/plugins/virim/graph.php>\n    Order deny,allow\n    Deny from all\n</Location>
# Nginx: location ~ /wp-content/plugins/virim/graph\.php { deny all; }

🧯 If You Can't Patch

  • Remove the Virim plugin completely from the WordPress installation
  • Implement web application firewall rules to block requests containing serialized data patterns

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel → Plugins → Installed Plugins for Virim version 0.4. Alternatively, check file system: /wp-content/plugins/virim/readme.txt for version information.

Check Version:

wp plugin list --name=virim --field=version

Verify Fix Applied:

Verify Virim plugin version is 0.5 or higher in WordPress admin panel or check that graph.php file no longer contains insecure deserialization code.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests to /wp-content/plugins/virim/graph.php with serialized data in parameters
  • Unusual PHP process execution from web server context
  • WordPress plugin activation/deactivation logs for Virim

Network Indicators:

  • POST requests to graph.php endpoint with s_values, t_values, or c_values parameters containing serialized data
  • Outbound connections from web server to suspicious IPs following exploitation

SIEM Query:

source="web_access_logs" AND uri="/wp-content/plugins/virim/graph.php" AND (param="s_values" OR param="t_values" OR param="c_values")

🔗 References

📤 Share & Export