CVE-2026-87741: ConvertPlus <= 3.6.3 - Authenticated (Subscriber+) PHP Object Injection via 'style' Parameter
The ConvertPlus plugin for WordPress is vulnerable to Deserialization of Untrusted Data in all versions up to, and including, 3.6.3 via the style parameter of the cpdisplaypreviewmodal AJAX action. The vulnerability exists because the action's nonce guard is gated behind an isset() check and fails open when the cpadminpagenonce parameter is omitted entirely, no capability check is performed on the callback, and sanitizetextfield() — applied to the $style value before it is concatenated directly into a shortcode string evaluated by doshortcode() — does not strip shortcode delimiters, allowing an attacker to inject a second, fully attacker-controlled [smilemodal] invocation that causes smilemodalpopup() to pass attacker-supplied base64-decoded bytes to maybeunserialize() with no allowedclasses restriction. This makes it possible for authenticated attackers, with Subscriber-level access and above, to inject a PHP object. No known POP chain is present in the vulnerable software, which means this vulnerability has no impact unless another plugin or theme containing a POP chain is installed on the site. If a POP chain is present via an additional plugin or theme installed on the target system, it may allow the attacker to perform actions like delete arbitrary files, retrieve sensitive data, or execute code depending on the POP chain present.
Affected Software
Event History
Frequently Asked Questions
Which sites are meaningfully at risk?
Sites running ConvertPlus version 3.6.3 or earlier are exposed if an authenticated user with at least Subscriber-level access can access the affected AJAX action. Practical impact also requires a separate installed plugin or theme that provides a usable PHP object-oriented programming (POP) chain.
What does an attacker need to exploit this issue?
The attacker needs an authenticated WordPress account with Subscriber-level privileges or higher. They can omit the cp_admin_page_nonce parameter entirely because the nonce validation fails open in that case; no capability check is performed by the callback.
Is a POP chain required for impact?
Yes. Although the vulnerable code can deserialize attacker-controlled data and inject a PHP object, no known POP chain exists in ConvertPlus itself. Without a POP chain supplied by another installed plugin or theme, the issue has no impact according to the provided information.
How can I determine whether my site is affected?
Check whether ConvertPlus is installed and whether its version is 3.6.3 or earlier. Also review installed plugins and themes for known or usable POP chains, since their presence is required for the object injection to produce impact.