---
id: CVE-2026-3639
title: >-
  The PPWP – Password Protect Pages plugin for WordPress is vulnerable to Stored
  Cross-Site Scripting via the plugin's `ppwp` shortcode attributes in all
  versions up to, and including, 1.9.21 due to insufficient input sanitization
  and outp…
summary: >-
  The PPWP – Password Protect Pages plugin for WordPress is vulnerable to Stored
  Cross-Site Scripting via the plugin's `ppwp` shortcode attributes in all
  versions up to, and including, 1.9.21 due to insufficient input sanitization
  and outp…
severity: medium
cvss: 6.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'
cwe:
  - CWE-79
published: '2026-08-13'
updated: '2026-08-28'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-3639'
references:
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.15/includes/services/class-ppw-shortcode.php#L582
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/tags/1.9.15/includes/views/shortcode/view-ppw-restriced-content-form.php#L18
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/trunk/includes/services/class-ppw-shortcode.php#L582
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/password-protect-page/trunk/includes/views/shortcode/view-ppw-restriced-content-form.php#L18
    label: security@wordfence.com
  - url: 'https://plugins.trac.wordpress.org/changeset/3642939/password-protect-page'
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/changeset?old_path=%2Fpassword-protect-page/tags/1.9.19&new_path=%2Fpassword-protect-page/tags/1.9.20
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/7fa5206e-8888-4872-b4bd-91fe5628498c?source=cve
    label: security@wordfence.com
tags:
  - nvd
epss: 0.00349
epssPercentile: 0.25824
ingestedAt: '2026-08-29T21:42:32.967Z'
---

## Overview

The PPWP – Password Protect Pages plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's `ppwp` shortcode attributes 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.

## Remediation

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