Description
b2evolution CMS versions 6.7.8 through 7.2.5 contain an incomplete fix for CVE-2016-8901 where the serialized-array object check in param_check_serialized_array() fails to reject payloads with negative integer array keys. Unauthenticated attackers can submit crafted serialized PHP objects via POST requests to htsrv/call_plugin.php that bypass validation and reach unserialize(), instantiating arbitrary PHP objects with attacker-chosen properties that may enable code execution if suitable POP gadget chains exist.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| b2evolution | b2evolution CMS | 6.7.8 – ≤ 7.2.5 | — |
References
- https://gist.github.com/axg11/3e29501c33f6e1e05ac2a00107afd64e technical-description
- https://github.com/b2evolution/b2evolution/blob/7.2.5/inc/_core/_param.funcs.php#L2860 technical-description
- https://github.com/b2evolution/b2evolution/blob/7.2.5/htsrv/call_plugin.php#L49 technical-description
- Incomplete fix for CVE-2016-8901 (1 of 2) patch
- Incomplete fix for CVE-2016-8901 (2 of 2) patch
- Introduces the flawed regular expression, first released in 6.7.8 technical-description patch
- b2evolution CMS end-of-life announcement vendor-advisory
- https://github.com/b2evolution/b2evolution product
- VulnCheck Advisory: b2evolution CMS 6.7.8 through 7.2.5 Object Injection via Negative Integer Array Key third-party-advisory