What the vulnerability does
01Description
The PPWP – Password Protect Pages plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 1.9.18 via deserialization of untrusted input from the 'post_protection_roles' vulnerable parameter. This makes it possible for authenticated attackers, with Contributor-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.
Explanation of Vulnerability in Simple Terms
02Summary
PPWP – Password Protect Pages versions up to 1.9.18 contain a deserialization vulnerability that allows authenticated users to execute arbitrary PHP code on the site. An attacker with low-level access can craft malicious serialized data to trigger code execution. This affects all installations running the vulnerable version range.
What an attacker can do
03Attacker Capabilities
Run arbitrary PHP code on the site and take full control of it.
Potential impact on your site
04Site Impact
Any authenticated user can compromise your entire site, including database access and file modification.
Conditions required to exploit
05Prerequisites
Attacker must have a low-level user account (subscriber or contributor role or equivalent).
Key dates
06Disclosure timeline
August 22, 2026
CVE published