CVE-2025-49237

7.4 HIGH

📋 TL;DR

This CSRF vulnerability in the POEditor WordPress plugin allows attackers to trick authenticated administrators into performing unintended actions, specifically arbitrary file deletion via path traversal. It affects all WordPress sites running POEditor plugin versions up to 0.9.10. Attackers can exploit this to delete critical files on the server.

💻 Affected Systems

Products:
  • POEditor WordPress Plugin
Versions: n/a through 0.9.10
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires attacker to trick authenticated administrator into clicking malicious link while logged into WordPress admin panel.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete website compromise through deletion of WordPress core files, configuration files, or database files, leading to site unavailability and potential data loss.

🟠

Likely Case

Partial website disruption through deletion of plugin files, themes, or uploaded content, causing functionality loss and requiring restoration from backups.

🟢

If Mitigated

No impact if proper CSRF protections are implemented and file deletion permissions are restricted.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires social engineering to trick authenticated admin users. CSRF payloads are simple to create.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.9.11 or later

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/poeditor/vulnerability/wordpress-poeditor-plugin-0-9-10-csrf-to-arbitrary-file-deletion-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find POEditor plugin. 4. Click 'Update Now' if update available. 5. Alternatively, download version 0.9.11+ from WordPress repository and manually update.

🔧 Temporary Workarounds

Disable Plugin

all

Temporarily disable POEditor plugin until patched

wp plugin deactivate poeditor

Add CSRF Protection Headers

all

Implement additional CSRF protection at web server level

# Add to .htaccess for Apache:
Header set X-Frame-Options "DENY"
Header set Content-Security-Policy "frame-ancestors 'none'"
# Add to nginx config:
add_header X-Frame-Options "DENY" always;
add_header Content-Security-Policy "frame-ancestors 'none'" always;

🧯 If You Can't Patch

  • Restrict admin panel access to trusted IP addresses only using firewall rules or .htaccess restrictions.
  • Implement additional authentication factor for admin actions, especially file deletion operations.

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for POEditor version. If version is 0.9.10 or earlier, you are vulnerable.

Check Version:

wp plugin get poeditor --field=version

Verify Fix Applied:

Verify POEditor plugin version is 0.9.11 or later in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual file deletion events in WordPress or web server logs
  • Multiple failed file deletion attempts from same IP
  • Admin panel access followed immediately by file deletion operations

Network Indicators:

  • HTTP POST requests to POEditor admin endpoints without proper referrer headers
  • Suspicious iframe or form submissions targeting admin URLs

SIEM Query:

source="wordpress.log" AND "poeditor" AND ("delete" OR "unlink") AND NOT user_agent="WordPress"

🔗 References

📤 Share & Export