CVE-2024-4354
📋 TL;DR
The TablePress WordPress plugin is vulnerable to Server-Side Request Forgery (SSRF) that allows authenticated attackers with author-level access or higher to make arbitrary web requests from the vulnerable server. This can be used to query and modify internal services, potentially exposing sensitive data or enabling further attacks. The vulnerability affects all versions up to and including 2.3.
💻 Affected Systems
- TablePress – Tables in WordPress made easy
📦 What is this software?
Tablepress by Tablepress
⚠️ Risk & Real-World Impact
Worst Case
Attackers could access internal services, exfiltrate sensitive data from internal networks, perform port scanning, or chain with other vulnerabilities to achieve remote code execution.
Likely Case
Attackers with compromised author accounts could probe internal networks, access metadata services (like AWS/Azure instance metadata), or interact with internal APIs to steal data.
If Mitigated
With proper access controls and network segmentation, impact is limited to the web server's network perspective and accessible internal services.
🎯 Exploit Status
Exploitation requires authenticated access (author role or higher). Technical details and proof-of-concept are publicly available in the references.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Versions after 2.3
Vendor Advisory: https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3097113%40tablepress&new=3097113%40tablepress&sfp_email=&sfph_mail=
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find TablePress and click 'Update Now'. 4. Alternatively, download latest version from WordPress plugin repository and manually replace plugin files.
🔧 Temporary Workarounds
Restrict URL Import to Administrators
allModify plugin code to restrict the vulnerable import functionality to administrator roles only as an interim measure.
Edit wp-content/plugins/tablepress/classes/class-import.php and add role checks before line 125
Remove Author Role Access
allTemporarily downgrade or remove author-level users until patching is complete.
In WordPress admin: Users → All Users → Edit user → Role → Change to Subscriber
🧯 If You Can't Patch
- Disable the TablePress plugin completely until patching is possible
- Implement network-level restrictions to block outbound HTTP requests from the web server to internal networks
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin panel → Plugins → TablePress → Version. If version is 2.3 or lower, you are vulnerable.
Check Version:
wp plugin list --name=tablepress --field=version (if WP-CLI is installed)
Verify Fix Applied:
After updating, verify TablePress version is higher than 2.3 in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual HTTP requests from web server to internal IP addresses
- Multiple failed import attempts in TablePress logs
- Requests to metadata services (169.254.169.254, 100.100.100.200)
Network Indicators:
- Web server making outbound requests to internal IP ranges
- Requests to known metadata endpoints from web server IP
SIEM Query:
source="web_server_logs" AND (uri CONTAINS "/wp-admin/admin-ajax.php" OR uri CONTAINS "tablepress") AND (dst_ip IN private_ranges OR dst_ip=169.254.169.254 OR dst_ip=100.100.100.200)
🔗 References
- https://plugins.trac.wordpress.org/browser/tablepress/trunk/classes/class-import.php#L125
- https://plugins.trac.wordpress.org/browser/tablepress/trunk/classes/class-import.php#L141
- https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3097113%40tablepress&new=3097113%40tablepress&sfp_email=&sfph_mail=
- https://www.clear-gate.com/blog/ssrf-with-dns-rebinding-2/
- https://www.wordfence.com/threat-intel/vulnerabilities/id/879384eb-bfea-4667-a7de-9f723dbea74b?source=cve
- https://plugins.trac.wordpress.org/browser/tablepress/trunk/classes/class-import.php#L125
- https://plugins.trac.wordpress.org/browser/tablepress/trunk/classes/class-import.php#L141
- https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3097113%40tablepress&new=3097113%40tablepress&sfp_email=&sfph_mail=
- https://www.clear-gate.com/blog/ssrf-with-dns-rebinding-2/
- https://www.wordfence.com/threat-intel/vulnerabilities/id/879384eb-bfea-4667-a7de-9f723dbea74b?source=cve