CVE-2024-5932
📋 TL;DR
The GiveWP WordPress plugin is vulnerable to PHP object injection via the 'give_title' parameter, allowing unauthenticated attackers to execute arbitrary code and delete files. All versions up to 3.14.1 are affected, impacting any WordPress site using this donation plugin.
💻 Affected Systems
- GiveWP – Donation Plugin and Fundraising Platform for WordPress
📦 What is this software?
Givewp by Givewp
⚠️ Risk & Real-World Impact
Worst Case
Complete server compromise leading to data theft, ransomware deployment, or website defacement
Likely Case
Remote code execution allowing backdoor installation, credential theft, and file deletion
If Mitigated
Limited impact if proper WAF rules block malicious payloads and file permissions restrict damage
🎯 Exploit Status
CVSS 10.0 indicates trivial exploitation with maximum impact potential
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.14.2 or later
Vendor Advisory: https://wordpress.org/plugins/give/
Restart Required: No
Instructions:
1. Log into WordPress admin panel
2. Navigate to Plugins → Installed Plugins
3. Find GiveWP plugin
4. Click 'Update Now' if available
5. If no update shows, download version 3.14.2+ from WordPress.org
6. Deactivate old version, upload new version, activate
🔧 Temporary Workarounds
WAF Rule Block
allBlock requests containing suspicious serialized data in give_title parameter
ModSecurity: SecRule ARGS:give_title "@rx (O:\d+:\"[^\"]+\":\d+:\{[^}]*\})" "id:1001,phase:2,deny,status:403,msg:'PHP Object Injection Attempt'"
Cloudflare WAF: Create rule blocking requests where URI contains 'give_title' with suspicious patterns
Plugin Deactivation
allTemporarily disable GiveWP plugin until patched
wp plugin deactivate give
WordPress Admin → Plugins → GiveWP → Deactivate
🧯 If You Can't Patch
- Implement strict WAF rules blocking all requests with serialized data in parameters
- Restrict plugin access using .htaccess or nginx rules to allow only trusted IP addresses
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → GiveWP version number
Check Version:
wp plugin list --name=give --field=version
Verify Fix Applied:
Verify GiveWP version is 3.14.2 or higher in WordPress admin
📡 Detection & Monitoring
Log Indicators:
- POST requests to /wp-admin/admin-ajax.php with give_title parameter containing serialized data
- Unusual file deletion events in webroot
- Suspicious PHP process execution
Network Indicators:
- HTTP requests with serialized PHP objects in POST data
- Multiple failed exploitation attempts from same IP
SIEM Query:
source="web_logs" AND (uri="*admin-ajax.php*" AND post_data="*give_title*" AND post_data MATCHES "*O:[0-9]+:*")
🔗 References
- https://plugins.trac.wordpress.org/browser/give/tags/3.12.0/includes/login-register.php#L235
- https://plugins.trac.wordpress.org/browser/give/tags/3.12.0/includes/process-donation.php#L420
- https://plugins.trac.wordpress.org/browser/give/tags/3.12.0/src/DonorDashboards/Tabs/EditProfileTab/AvatarRoute.php#L51
- https://plugins.trac.wordpress.org/browser/give/tags/3.12.0/vendor/tecnickcom/tcpdf/tcpdf.php#L7861
- https://plugins.trac.wordpress.org/browser/give/tags/3.12.0/vendor/vendor-prefixed/fakerphp/faker/src/Faker/ValidGenerator.php#L80
- https://plugins.trac.wordpress.org/changeset/3132247/
- https://www.wordfence.com/blog/2024/08/4998-bounty-awarded-and-100000-wordpress-sites-protected-against-unauthenticated-remote-code-execution-vulnerability-patched-in-givewp-wordpress-plugin/
- https://www.wordfence.com/threat-intel/vulnerabilities/id/93e2d007-8157-42c5-92ad-704dc80749a3?source=cve