CVE-2025-22777

9.8 CRITICAL

📋 TL;DR

CVE-2025-22777 is a critical PHP object injection vulnerability in the GiveWP WordPress plugin that allows attackers to execute arbitrary code by exploiting insecure deserialization. This affects all WordPress sites running GiveWP versions up to 3.19.3, potentially compromising over 100,000 active installations.

💻 Affected Systems

Products:
  • GiveWP WordPress Plugin
Versions: n/a through 3.19.3
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: All WordPress installations using vulnerable GiveWP versions are affected regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete server takeover leading to data theft, ransomware deployment, website defacement, and lateral movement to other systems on the network.

🟠

Likely Case

Remote code execution allowing attackers to create backdoors, install malware, steal sensitive donor information, and compromise the entire WordPress installation.

🟢

If Mitigated

Limited impact with proper network segmentation, web application firewalls, and minimal plugin permissions, though the vulnerability still exists.

🌐 Internet-Facing: HIGH - WordPress plugins are directly exposed to the internet and this vulnerability can be exploited remotely without authentication.
🏢 Internal Only: MEDIUM - Internal WordPress installations could still be exploited by malicious insiders or through compromised internal systems.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

While no public PoC exists, the vulnerability type (PHP object injection) is well-understood and weaponization is likely given the high CVSS score and large install base.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 3.19.4 or later

Vendor Advisory: https://wordpress.org/plugins/give/#developers

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find GiveWP and click 'Update Now'. 4. Verify update to version 3.19.4 or higher.

🔧 Temporary Workarounds

Disable GiveWP Plugin

all

Temporarily disable the vulnerable plugin until patching is possible

wp plugin deactivate give

Web Application Firewall Rule

all

Block suspicious deserialization attempts at the WAF level

Add rule to block requests containing serialized PHP objects to GiveWP endpoints

🧯 If You Can't Patch

  • Isolate the WordPress instance in a separate network segment with strict inbound/outbound firewall rules
  • Implement file integrity monitoring on WordPress directories and alert on unexpected file changes

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel → Plugins → GiveWP version. If version is 3.19.3 or lower, you are vulnerable.

Check Version:

wp plugin list --name=give --field=version

Verify Fix Applied:

Verify GiveWP version is 3.19.4 or higher in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to GiveWP endpoints
  • Unexpected file creation in wp-content/uploads/give
  • PHP errors related to unserialize() in web server logs

Network Indicators:

  • Suspicious outbound connections from WordPress server
  • Unusual traffic patterns to GiveWP-specific URLs

SIEM Query:

source="web_server_logs" AND (uri_path="/wp-json/give/*" OR uri_path="/wp-admin/admin-ajax.php") AND (http_method="POST") AND (status_code="200") AND (size_bytes>10000)

🔗 References

📤 Share & Export