Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2024-30229

CVE-2024-30229: GiveWP Deserialization Vulnerability

CVE-2024-30229 is a deserialization of untrusted data vulnerability in GiveWP plugin that could allow attackers to execute malicious code. This article covers technical details, affected versions up to 3.4.2, and mitigation.

Published:

CVE-2024-30229 Overview

CVE-2024-30229 is a PHP Object Injection vulnerability in the StellarWP GiveWP plugin for WordPress. The flaw stems from insecure deserialization of untrusted data ([CWE-502]) and affects all versions up to and including 3.4.2. An authenticated attacker with high privileges can submit crafted serialized payloads that instantiate arbitrary PHP objects during unserialization. When combined with a suitable POP gadget chain in the WordPress runtime, this can lead to code execution, data tampering, or denial of service on the underlying site.

Critical Impact

Successful exploitation allows an authenticated attacker to trigger PHP object injection, potentially resulting in remote code execution, integrity loss, and full compromise of the WordPress site hosting GiveWP.

Affected Products

  • StellarWP GiveWP plugin for WordPress, versions up to and including 3.4.2
  • WordPress sites running GiveWP with donation and fundraising features enabled
  • Any hosting environment exposing the vulnerable plugin endpoints over the network

Discovery Timeline

  • 2024-03-28 - CVE-2024-30229 published to the National Vulnerability Database
  • 2026-06-17 - Last updated in the NVD database

Technical Details for CVE-2024-30229

Vulnerability Analysis

The vulnerability is an Insecure Deserialization issue classified under [CWE-502]. GiveWP passes attacker-controllable input to a PHP unserialize routine without validating the serialized structure or restricting allowed classes. When unserialization occurs, PHP reconstructs object instances and invokes magic methods such as __wakeup, __destruct, or __toString on those objects.

WordPress and its plugin ecosystem expose numerous classes that, when combined into a POP (Property-Oriented Programming) chain, can lead to file writes, arbitrary function calls, or SQL execution. The attacker requires high-privilege authentication, which limits scope but does not eliminate risk in multi-user, agency-managed, or compromised-admin scenarios.

Root Cause

The root cause is the use of PHP unserialize() on data that originates from a request context reachable by authenticated users. GiveWP does not enforce an allow-list of deserializable classes and does not validate signatures on serialized payloads. The absence of these controls turns any writable input path into a gadget-chain trigger.

Attack Vector

The attack vector is network-based. An attacker authenticated to a GiveWP-enabled WordPress site sends a crafted request containing a serialized PHP object to a vulnerable plugin endpoint. On processing, the payload is unserialized and instantiates attacker-chosen objects, driving a POP chain toward code execution or data manipulation.

No public proof-of-concept exploit code is available for CVE-2024-30229. For technical detail, refer to the Patchstack WordPress Vulnerability Advisory.

Detection Methods for CVE-2024-30229

Indicators of Compromise

  • Unexpected serialized PHP strings (O:, a:, s: prefixes) in POST bodies, cookies, or query parameters submitted to GiveWP endpoints
  • New or modified PHP files under wp-content/plugins/ or wp-content/uploads/ shortly after authenticated GiveWP requests
  • Outbound network connections initiated by the PHP worker process to unfamiliar hosts following donation form interactions

Detection Strategies

  • Inspect web server and WAF logs for request bodies containing PHP serialization markers directed at GiveWP routes
  • Monitor WordPress audit logs for privileged user actions correlated with anomalous plugin traffic
  • Alert on PHP-FPM or Apache child processes spawning shell utilities such as sh, bash, curl, or wget

Monitoring Recommendations

  • Enable file integrity monitoring on the WordPress document root and the wp-content directory
  • Ingest WordPress, WAF, and host telemetry into a centralized data lake and correlate authenticated sessions with plugin request patterns
  • Track GiveWP plugin version across managed sites and alert on any host still running 3.4.2 or earlier

How to Mitigate CVE-2024-30229

Immediate Actions Required

  • Upgrade GiveWP to a version later than 3.4.2 on every WordPress site running the plugin
  • Rotate credentials for all high-privilege WordPress accounts that could reach the vulnerable endpoints
  • Review recent administrative activity and plugin logs for signs of exploitation before patching

Patch Information

StellarWP has addressed the deserialization flaw in GiveWP releases published after version 3.4.2. Apply the latest available GiveWP release from the WordPress plugin repository. Consult the Patchstack Give Plugin Vulnerability entry for the fixed version reference.

Workarounds

  • Restrict administrative access to trusted IP ranges using web server or WAF rules until the plugin is upgraded
  • Deploy WAF signatures that block requests containing PHP serialization markers targeting GiveWP endpoints
  • Enforce multi-factor authentication on all WordPress accounts with roles capable of invoking GiveWP administrative functions
  • Disable or remove GiveWP on sites that do not actively require donation processing

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.