---
id: CVE-2026-116520
title: >-
  PPWP <= 1.9.26 - Unauthenticated Stored Cross-Site Scripting via '[ppwp]'
  Shortcode 'desc_below_form' Attribute via Placeholder Marker Collision
summary: >-
  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,…
severity: high
cvss: 7.2
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N'
cvssSource: cna
cwe:
  - CWE-79
vendor: buildwps
product: PPWP – Password Protect Pages
affected:
  - ppwp_password_protect_pages <= 1.9.26
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-01T17:34:57.940258Z'
published: '2026-10-31'
updated: '2026-11-01'
sourceUpdated: '2026-11-01T17:44:30.459Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-116520'
references:
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/c549ba14-276e-46ab-8019-97430a566d8c?source=cve
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.26/includes/services/class-ppw-shortcode.php#L587
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.26/includes/services/class-ppw-shortcode.php#L598
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.26/includes/views/shortcode/view-ppw-restriced-content-form.php#L17
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.26/includes/services/class-ppw-shortcode.php#L608
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.26/includes/services/class-ppw-shortcode.php#L622
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.26/includes/services/class-ppw-shortcode.php#L202
  - url: >-
      https://plugins.trac.wordpress.org/changeset/3772960/password-protect-page/trunk/includes/services/class-ppw-shortcode.php
tags:
  - cve.org
epss: 0.00383
epssPercentile: 0.3257
ingestedAt: '2026-11-05T19:30:42.603Z'
---

## Overview

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.

## Affected

- `ppwp_password_protect_pages <= 1.9.26`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
