CVE-2018-25095

9.8 CRITICAL

📋 TL;DR

The Duplicator WordPress plugin before version 1.3.0 contains a vulnerability where the installer script doesn't properly escape values when modifying WordPress configuration files. If the installer script remains on the site after migration, attackers can exploit this to execute arbitrary code on the server. This affects all WordPress sites using vulnerable versions of the Duplicator plugin.

💻 Affected Systems

Products:
  • Duplicator WordPress Plugin
Versions: All versions before 1.3.0
Operating Systems: All operating systems running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Vulnerability only exists if installer.php or installer-backup.php files remain on the server after migration. These files should be automatically removed after successful migration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server compromise allowing attackers to execute arbitrary code, install backdoors, steal data, deface websites, or use the server for further attacks.

🟠

Likely Case

Website defacement, data theft, malware injection, or cryptocurrency mining malware installation.

🟢

If Mitigated

No impact if the installer script is properly removed after migration as intended by the plugin's design.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires the installer script to be accessible on the server. Attackers can directly access installer.php or installer-backup.php files if they weren't removed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.3.0 and later

Vendor Advisory: https://wpscan.com/vulnerability/16cc47aa-cb31-4114-b014-7ac5fbc1d3ee

Restart Required: No

Instructions:

1. Update Duplicator plugin to version 1.3.0 or later via WordPress admin panel. 2. Manually delete any installer.php or installer-backup.php files from your WordPress root directory if they exist. 3. Verify the files are removed.

🔧 Temporary Workarounds

Manual File Removal

linux

Remove vulnerable installer files from server

rm -f /path/to/wordpress/installer.php
rm -f /path/to/wordpress/installer-backup.php

Access Restriction

all

Block access to installer files via web server configuration

# Add to .htaccess for Apache:
<Files "installer.php">
    Order Allow,Deny
    Deny from all
</Files>
<Files "installer-backup.php">
    Order Allow,Deny
    Deny from all
</Files>
# Add to nginx config:
location ~ /installer\.php$ { deny all; }
location ~ /installer-backup\.php$ { deny all; }

🧯 If You Can't Patch

  • Immediately delete installer.php and installer-backup.php files from WordPress root directory
  • Implement web server rules to block access to installer.php and installer-backup.php files

🔍 How to Verify

Check if Vulnerable:

Check if installer.php or installer-backup.php files exist in WordPress root directory: ls -la /path/to/wordpress/ | grep installer

Check Version:

grep 'Stable tag:' /path/to/wordpress/wp-content/plugins/duplicator/readme.txt

Verify Fix Applied:

Verify installer files are removed and plugin version is 1.3.0+: 1. Check files don't exist: ls -la /path/to/wordpress/ | grep installer 2. Check plugin version in WordPress admin or wp-content/plugins/duplicator/readme.txt

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests to installer.php or installer-backup.php
  • Unusual POST requests with PHP code in parameters
  • File creation/modification in wp-config.php

Network Indicators:

  • Outbound connections to suspicious IPs after installer.php access
  • Unusual traffic patterns from WordPress server

SIEM Query:

source="web_server" AND (url="*installer.php*" OR url="*installer-backup.php*")

🔗 References

📤 Share & Export