CVE-2023-31077

8.8 HIGH

📋 TL;DR

This CSRF vulnerability in the Export WP Page to Static HTML/CSS WordPress plugin allows attackers to trick authenticated administrators into performing unauthorized actions. Attackers can force admins to export site content or modify plugin settings without their consent. All WordPress sites using vulnerable plugin versions are affected.

💻 Affected Systems

Products:
  • Export WP Page to Static HTML/CSS WordPress plugin
Versions: <= 2.1.9
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires attacker to trick authenticated administrator into visiting malicious page while logged into WordPress admin.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could export all site content to attacker-controlled locations, modify plugin settings to compromise site functionality, or chain with other vulnerabilities for further exploitation.

🟠

Likely Case

Attackers trick administrators into exporting sensitive site content or changing plugin configurations, potentially leading to data exposure or site disruption.

🟢

If Mitigated

With proper CSRF protections and admin awareness, exploitation attempts would fail, limiting impact to failed attack attempts.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

CSRF attacks are well-understood and easy to weaponize, though exploitation requires social engineering to trick authenticated users.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.2.0

Vendor Advisory: https://patchstack.com/database/vulnerability/export-wp-page-to-static-html/wordpress-export-wp-page-to-static-html-css-plugin-2-1-9-cross-site-request-forgery-csrf-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find 'Export WP Page to Static HTML/CSS'. 4. Click 'Update Now' if update available. 5. Alternatively, download version 2.2.0+ from WordPress repository and manually update.

🔧 Temporary Workarounds

Temporary Plugin Deactivation

all

Deactivate the vulnerable plugin until patched version can be installed

wp plugin deactivate export-wp-page-to-static-html

CSRF Protection via .htaccess

linux

Add CSRF protection headers at web server level

Header set X-Frame-Options "SAMEORIGIN"
Header set Content-Security-Policy "frame-ancestors 'self'"

🧯 If You Can't Patch

  • Implement strict SameSite cookie policies and CSRF tokens at application level
  • Restrict plugin admin access to trusted IP addresses only

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin > Plugins > Installed Plugins for 'Export WP Page to Static HTML/CSS' version <= 2.1.9

Check Version:

wp plugin get export-wp-page-to-static-html --field=version

Verify Fix Applied:

Verify plugin version is 2.2.0 or higher in WordPress admin plugins page

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed export attempts from unusual IPs
  • Unexpected plugin configuration changes in admin logs

Network Indicators:

  • POST requests to /wp-admin/admin.php?page=export-wp-page-to-static-html from non-admin IPs
  • Cross-origin requests to plugin endpoints

SIEM Query:

source="wordpress" AND (uri_path="/wp-admin/admin.php" AND query_string="page=export-wp-page-to-static-html") AND http_method="POST"

🔗 References

📤 Share & Export