SECURITYCRITICALCVE-2026-32470

Critical PHP Object Injection in FundEngine Plugin (CVE-2026-32470)

An unauthenticated PHP Object Injection flaw (CVSS 9.8) in FundEngine <= 1.7.9 allows remote attackers to execute arbitrary code without credentials.

Dylan H.

Security Team

August 19, 2026
3 min read
Critical PHP Object Injection in FundEngine Plugin (CVE-2026-32470)

Critical severity

Rated critical. Prioritise patching — see the remediation guidance below.

Affected Products

  • FundEngine <= 1.7.9

Executive Summary

A critical unauthenticated PHP Object Injection vulnerability (CVE-2026-32470) has been disclosed in the FundEngine WordPress plugin affecting all versions up to and including 1.7.9. The vulnerability carries a CVSS score of 9.8 and allows remote attackers to inject a PHP object without any authentication, potentially leading to remote code execution, data exfiltration, and full site compromise when a suitable POP (Property-Oriented Programming) chain is present.

CVSS Score: 9.8 (Critical)

PHP Object Injection vulnerabilities arise when user-controlled data is passed into PHP's unserialize() function without adequate sanitization. If a POP chain exists within the application or installed plugins/themes, an attacker can trigger arbitrary code execution, file manipulation, or privilege escalation.


Vulnerability Overview

AttributeValue
CVE IDCVE-2026-32470
CVSS Score9.8 (Critical)
TypeUnauthenticated PHP Object Injection
Attack VectorNetwork (no authentication required)
Privileges RequiredNone
User InteractionNone
ScopeChanged

Affected Versions

PluginAffected VersionsFixed Version
FundEngine<= 1.7.9> 1.7.9 (patch required)

Technical Analysis

PHP Object Injection occurs when user-supplied data is deserialized via unserialize() without validation. An attacker crafts a malicious serialized PHP object and submits it to a vulnerable endpoint in FundEngine. If the WordPress installation or any co-installed plugin provides a usable POP chain, the attacker can execute arbitrary PHP code on the server.

Attack Chain

1. Attacker identifies WordPress site running FundEngine <= 1.7.9
2. Attacker crafts a malicious serialized PHP object payload
3. Payload is submitted to the vulnerable unauthenticated endpoint
4. FundEngine calls unserialize() on attacker-controlled input
5. PHP instantiates attacker-chosen class with attacker-controlled properties
6. POP chain (from FundEngine, WordPress core, or another plugin) triggers
7. Arbitrary code execution / file write / data exfiltration

Impact of Successful Exploitation

ImpactDescription
Remote Code ExecutionExecute arbitrary PHP code via POP chain
File ManipulationRead, write, or delete arbitrary files on the server
Data ExfiltrationAccess WordPress database credentials and user data
Backdoor InstallationDrop persistent webshells or rogue admin accounts
Lateral MovementPivot to other sites on shared hosting environments

Immediate Remediation

Step 1: Update or Disable FundEngine

Check your WordPress dashboard for an available update to FundEngine. If no patch is yet available through the plugin repository, deactivate and remove the plugin immediately.

# Via WP-CLI — check current version
wp plugin get fundengine --field=version
 
# Update if available
wp plugin update fundengine
 
# Deactivate if no patch is available
wp plugin deactivate fundengine

Step 2: Audit Installed Plugins for POP Chain Sources

The severity of PHP Object Injection depends on available POP chains. Audit all installed plugins and themes:

# List all active plugins with versions
wp plugin list --status=active --fields=name,version
 
# Check for known vulnerable POP chain sources
wp plugin list --status=active | grep -iE "woocommerce|yoast|elementor|jetpack"

Step 3: Scan for Existing Compromise

# Look for suspicious PHP files recently modified
find /path/to/wordpress/ -name "*.php" -newer /path/to/wordpress/wp-login.php -type f 2>/dev/null
 
# Check for common webshell indicators
grep -rl "eval\s*(base64_decode" /path/to/wordpress/wp-content/
grep -rl "assert\s*(" /path/to/wordpress/wp-content/uploads/
 
# Verify WordPress core file integrity
wp core verify-checksums

Step 4: Web Application Firewall Rules

If immediate patching is not possible, deploy WAF rules to block serialized object payloads:

# Nginx — block serialized PHP object patterns in request body
location ~ /wp-json/fundengine/ {
    if ($request_body ~* "O:[0-9]+:") {
        return 403;
    }
}

Detection Indicators

IndicatorDescription
POST requests with O:[0-9]+: patternPHP object injection payload in request body
Unexpected PHP files in wp-content/Webshells dropped post-exploitation
New administrator accountsPrivilege escalation via POP chain
Outbound connections from web serverData exfiltration or C2 communication
Errors in PHP error logDeserialization failures revealing exploit attempts

Post-Remediation Steps

  1. Confirm plugin is patched or removed
  2. Scan all PHP files for unauthorized modifications
  3. Audit WordPress user accounts — remove unknown administrators
  4. Rotate all credentials: WordPress admin, database, SFTP, API keys
  5. Regenerate WordPress security keys: wp config shuffle-salts
  6. Review PHP error logs for deserialization error traces
  7. Deploy a WAF (Wordfence, Sucuri) for ongoing protection
  8. Enable file integrity monitoring

References