CVE-2026-93293: Password Protected <= 2.8.4 - Authenticated (Subscriber+) Stored Cross-Site Scripting via Freemius purchase_completed Handler
The Password Protected plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the bundled Freemius SDK's purchase-completion handler in all versions up to, and including, 2.8.4 due to insufficient input sanitization and output escaping. Once the site's Freemius opt-in is complete (the normal state after an administrator clicks "Allow & Continue"), the handler processes the 'purchasedplan' request parameter on any wp-admin request from an authenticated user without any capability, nonce, or purchase validation, and stores it in a persistent, site-wide administrative notice. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts that execute automatically when an administrator views a standard admin page such as their Profile page.
Affected Software
Event History
Frequently Asked Questions
Who can exploit this vulnerability?
Any authenticated WordPress user with Subscriber-level access or higher can exploit it. The attacker does not need a specific WordPress capability, a nonce, or a valid purchase.
Are sites in the default post-setup state affected?
The vulnerable handler is active once Freemius opt-in has been completed, which is the normal state after an administrator selects "Allow & Continue." It processes the malicious parameter on any wp-admin request from an authenticated user.
What is the practical impact of a successful exploit?
An attacker can store arbitrary script content in a persistent, site-wide administrative notice. The script executes when an administrator visits a normal WordPress admin page, such as the Profile page.
How can I determine whether my installation is affected?
Installations of Password Protected through version 2.8.4 are affected if Freemius opt-in has been completed. Version 2.8.5 is identified in the supplied patch reference.