Read the docs

Stored cross-site scripting in PPWP password protect plugin

Priority LOW 32CWE-79Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Cross-site scripting
Confidentiality · integrity · availability
Low · Low · None
Fix status
No fix listed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-79.

Summary

The PPWP (Password Protect Pages) plugin for WordPress through 1.9.26 does not sanitize or escape the desc_below_form shortcode attribute, a stored cross-site scripting flaw (CWE-79). An unauthenticated attacker can store scripts through comments that run when a user opens an affected page. The attack works because bare shortcode text passes the comment filter unchanged and the comment whitelist setting auto-approves later comments from a previously approved name and email.

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

Description from the CNA

The PPWP – Password Protect Pages plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'comment / shortcode attribute desc_below_form (and placeholder as the marker-smuggling helper)' parameter in all versions up to, and including, 1.9.26 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by unauthenticated attackers because WordPress's comment_content filter leaves bare shortcode text (containing no HTML tags) untouched, and the comment_whitelist setting auto-approves subsequent comments from a previously approved name and email without administrator intervention.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00383 32nd percentileScored 2026-11-07
Fix No fix listed No fixed version in the sources yet

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
buildwpsPPWP – Password Protect Pagesup to 1.9.26—No fix listedCNA
  • PPWP – Password Protect Pages Vendorbuildwps Affected up to 1.9.26 Fixed in — No fix listed CNA

Remediation

The sources list no fixed version for PPWP (Password Protect Pages).

Written with Claude Haiku 5.5 from the sources below · 2026-11-05

Timeline

  1. 2026-10-31 Threatist record created from CVE-2026-116520
  2. 2026-10-31 Alias added: GHSA-7x9h-cjm5-x9fc
  3. 2026-11-01 Priority changed: MEDIUM → LOW
  4. 2026-11-01 CISA SSVC decision points changed

References

  • TI-2026-00354 PPWP – Password Protect Pages <= 1.9.18 - Authenticated (Contributor+) PHP Object Injection via post_protection_roles CVSS 3.1HIGH 8.8
  • TI-2026-03322 Prevent Direct Access – Protect WordPress Files <= 2.8.8.8 - Unauthenticated Protected File Access CVSS 3.1MEDIUM 5.3
  • TI-2025-03469 Prevent Direct Access – Protect WordPress Files <= 2.8.8 - Unauthenticated Sensitive Information Exposure CVSS 3.1MEDIUM 5.3
  • TI-2024-10450 PPWP – Password Protect Pages <= 1.9.5 - Unauthenticated Content Restriction Bypass to Sensitive Information Exposure CVSS 3.1MEDIUM 5.3
  • TI-2026-03139 Cross-site scripting in buildwps PPWP – Password Protect Pages CVSS 3.1MEDIUM 6.4
  • TI-2025-09063 Password Protect WordPress Lite <= 1.9.21 - Authenticated (Contributor+) Stored Cross-Site Scripting CVSS 3.1MEDIUM 6.4
See all 9 →

Sources