CVE-2025-9878: Password Protect WordPress Lite <= 1.9.21 - Authenticated (Contributor+) Stored Cross-Site Scripting
The PPWP – Password Protect WordPress | #1 Most-Reviewed Password Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'ppwp' shortcode in all versions up to, and including, 1.9.21 due to insufficient input sanitization and output escaping on user supplied attributes. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.
Affected Software
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker needs an authenticated WordPress account with at least Contributor-level access. They can inject script through attributes supplied to the plugin's ppwp shortcode.
When does the injected script run?
The script is stored in an affected page and executes when a user accesses that injected page. Exploitation does not require the viewing user to take additional action beyond loading the page.
Which installations are affected?
Password Protect WordPress Lite versions up to and including 1.9.21 are affected. The available information does not state whether a particular default configuration prevents use of the vulnerable shortcode.