GiveWP – Donation Plugin and Fundraising Platform <= 3.14.1 - Unauthenticated PHP Object Injection to Remote Code Execution
Strategic Overview
- Status
- Patched in 3.14.2
- Affected Plugin
- GiveWP – Donation Plugin and Fundraising Platform
- Affected Version
<= 3.14.1- CVSS
- 10.0Critical
- Weakness type
- CWE-502 · Deserialization of Untrusted Data
- CVE
CVE-2024-5932
At a glance
CVE-2024-5932 is a critical-severity Deserialization of Untrusted Data vulnerability in the GiveWP WordPress plugin, affecting versions <= 3.14.1. It carries a CVSS score of 10.0 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires no authentication. The issue is fixed in version 3.14.2; sites on affected versions should update now. Disclosed August 2024, reported by villu164.
Vulnerability Overview
The GiveWP – Donation Plugin and Fundraising Platform plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.14.1 via deserialization of untrusted input from the 'give_title' parameter. This makes it possible for unauthenticated attackers to inject a PHP Object. The additional presence of a POP chain allows attackers to execute code remotely, and to delete arbitrary files.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.
CWE-502: Deserialization of Untrusted Data
GiveWP <= 3.14.1 carries this weakness at give_title, and reaching it takes no account at all. Deserialization of untrusted data means the application reconstructs objects from input a caller controls, letting the attacker choose which classes get instantiated and what their properties hold.
A workable chain turns deserialization into file writes, deletions or code execution, depending on what the loaded classes do in their magic methods. For GiveWP the fix is 3.14.2: builds <= 3.14.1 are affected, anything from 3.14.2 onward is not.
Remediation
Update to version 3.14.2, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. Classes like this one can leave something behind, so the staged malware scanner is the second half: it looks for dropped files and modified code rather than for the request that created them. None of that substitutes for the fix: GiveWP 3.14.2 closes this, and updating the plugin is the step that ends it.
- Firewall
- Scanner
- Login Security
External References
Related records
Same weakness class
Other vulnerabilities in GiveWP – Donation Plugin and Fundraising Platform
- 9.8CVE-2024-9634: GiveWP PHP Object Injection to RCE
CVE-2024-9634 - 9.8CVE-2024-8353: GiveWP PHP Object Injection
CVE-2024-8353 - 9.8CVE-2023-0224: GiveWP <= 2.23.2 SQL Injection
CVE-2023-0224 - 9.8CVE-2019-13578: GiveWP - Donation Plugin… SQL Injection
CVE-2019-13578 - 8.8CVE-2024-30229: GiveWP PHP Object Injection
CVE-2024-30229 - 8.3CVE-2023-22719: GiveWP <= 2.25.1 CSV Injection
CVE-2023-22719 - 8.1CVE-2024-37099: GiveWP <= 3.14.1 PHP Object Injection
CVE-2024-37099 - 7.5CVE-2019-20360: GiveWP <= 2.5.4 Authorization Bypass
CVE-2019-20360
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C