Summary
CVE-2026-76834 is a critical deserialization vulnerability (CWE-502) in b2evolution CMS affecting versions 6.7.8 through 7.2.5. The flaw is an incomplete fix for the older CVE-2016-8901 issue: the input-validation routine param_check_serialized_array() fails to reject serialized array payloads that use negative integer array keys, allowing an unauthenticated attacker to smuggle crafted serialized data into PHP’s unserialize() function. The CVE carries a CVSS score of 9.2 (Critical).
Technical details
- Root cause: The validation check in
param_check_serialized_array()(in b2evolution’s parameter-handling code) is intended to reject any array key that is not a non-negative integer, but its logic incorrectly allows negative integer keys (e.g.-1) to pass through unrejected. - Trigger conditions: An attacker submits a specially crafted serialized PHP payload — such as
a:-1:{i:-1;O:8:"stdClass":0:{}}— using a negative array key to bypass the sanitization check. - Attack vector: The malicious payload is delivered via an unauthenticated POST request to
htsrv/call_plugin.php, which passes attacker-controlled data through to PHP’sunserialize(). - Impact: Successful exploitation results in PHP Object Injection, allowing instantiation of arbitrary PHP objects with attacker-chosen properties. Depending on the presence of exploitable "POP gadget chains" elsewhere in the application or its plugins, this can escalate to remote code execution, arbitrary file read/write, or SQL injection. No authentication is required to exploit the flaw.
Affected software
- b2evolution CMS versions 6.7.8 through 7.2.5 (inclusive)
Severity
- CVSS 4.0 Base Score: 9.2 (Critical)
- Vector:
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: As of this writing, no official patched release beyond 7.2.5 has been published by the b2evolution project, which has been largely unmaintained since its last stable release. Organizations should monitor the b2evolution GitHub repository for an official fix and apply it as soon as it becomes available.
- If no patch is available:
- Restrict or block external access to
htsrv/call_plugin.phpat the web server, reverse proxy, or WAF layer if the endpoint is not required for legitimate use. - Deploy WAF/IPS rules to detect and block serialized PHP payloads (e.g. patterns containing
O:object markers or negative array-length indicators likea:-) submitted to CMS endpoints. - Given the product’s end-of-life status, evaluate migrating affected sites to an actively maintained CMS platform.
- Monitor logs for anomalous POST requests to plugin-handling endpoints and for unexpected PHP errors indicative of failed deserialization attempts.
- Restrict or block external access to

