CVE-2023-1895
📋 TL;DR
This vulnerability in the Getwid WordPress plugin allows authenticated attackers with subscriber-level permissions or higher to perform Server-Side Request Forgery (SSRF) attacks. Attackers can make arbitrary web requests from the vulnerable server, potentially accessing internal services and sensitive information. All WordPress sites using Getwid plugin versions up to 1.8.3 are affected.
💻 Affected Systems
- Getwid – Gutenberg Blocks WordPress plugin
📦 What is this software?
Getwid by Motopress
⚠️ Risk & Real-World Impact
Worst Case
Attackers could access internal services, exfiltrate sensitive data, perform port scanning of internal networks, or chain with other vulnerabilities to achieve remote code execution.
Likely Case
Attackers will use this to probe internal networks, access metadata services (like AWS IMDS), or interact with internal APIs to steal sensitive information.
If Mitigated
With proper network segmentation and firewall rules, impact is limited to the web server's network segment, though local service enumeration remains possible.
🎯 Exploit Status
Exploitation requires authenticated access but is straightforward via the REST API endpoint. Public proof-of-concept code exists.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.8.4
Vendor Advisory: https://plugins.trac.wordpress.org/changeset/2892728/getwid/tags/1.8.4/includes/rest-api.php
Restart Required: No
Instructions:
1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find Getwid plugin. 4. Click 'Update Now' if update available. 5. Alternatively, download version 1.8.4+ from WordPress.org and replace plugin files.
🔧 Temporary Workarounds
Disable vulnerable REST endpoint
allRemove or restrict access to the get_remote_content REST API endpoint
Add to theme functions.php or custom plugin: remove_action('rest_api_init', 'getwid_rest_api_init');
Restrict user registration
allPrevent new subscriber account creation to reduce attack surface
In WordPress Settings → General, uncheck 'Anyone can register'
🧯 If You Can't Patch
- Implement network-level restrictions to block outbound HTTP requests from web servers to internal networks
- Use web application firewall (WAF) rules to block requests to the /wp-json/getwid/v1/get_remote_content endpoint
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins for Getwid version. If version ≤1.8.3, vulnerable.
Check Version:
wp plugin list --name=getwid --field=version (if WP-CLI installed)
Verify Fix Applied:
Verify Getwid plugin version is 1.8.4 or higher in WordPress admin panel.
📡 Detection & Monitoring
Log Indicators:
- Unusual POST requests to /wp-json/getwid/v1/get_remote_content
- Multiple requests with different URL parameters from same user
Network Indicators:
- Web server making unexpected outbound HTTP requests to internal IPs or unusual domains
- Port scanning patterns originating from web server
SIEM Query:
source="wordpress.log" AND (uri_path="/wp-json/getwid/v1/get_remote_content" OR user_agent CONTAINS "curl" OR user_agent CONTAINS "wget")
🔗 References
- https://plugins.trac.wordpress.org/browser/getwid/tags/1.8.3/includes/rest-api.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/e9c2a942-c14c-4b59-92a7-6946b2e4731b?source=cve
- https://plugins.trac.wordpress.org/browser/getwid/tags/1.8.3/includes/rest-api.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/e9c2a942-c14c-4b59-92a7-6946b2e4731b?source=cve