Skip to main content

PPWP Password Protect CVE-2025-10005

| EUVDEUVD-2025-210731 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-16 Wordfence GHSA-5fxx-hjg5-h5pq
4.3
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain or register Contributor-level WordPress account
  2. Delivery
    Enumerate target post IDs (publicly visible or guessable)
  3. Exploit
    Send crafted AJAX POST to wp-admin/admin-ajax.php invoking ppw_free_set_password
  4. Execution
    Overwrite target post's password with attacker-controlled value
  5. Persist
    Submit new password on post URL
  6. Impact
    Access restricted post content

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

Exploitation requires an authenticated WordPress session with at least Contributor-level role - unauthenticated visitors and Subscriber-level users (below Contributor) cannot exploit this flaw, as confirmed by the CVSS PR:L metric. The PPWP - Password Protect Pages plugin must be installed and active on the target site; the vulnerable AJAX action (ppw_free_set_password) is only registered when the plugin is enabled. No non-default configuration is required beyond plugin activation - any password-protected post on the site is a valid target once the plugin is active. Exploitation is bounded to the WordPress site's own content; it does not provide server-level access or affect other WordPress installations. The primary limiting factor is the Contributor-level authentication requirement, which reduces exposure on sites that do not grant accounts to untrusted external users.

Impact

The NVD/Wordfence CVSS 3.1 score of 4.3 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N accurately captures the authentication prerequisite (Contributor-level, PR:L) and low attack complexity, but the I:N metric arguably understates impact: unauthorized password modification of arbitrary posts is itself an unauthorized write operation, representing data integrity impact beyond just disclosure. No EPSS score was supplied in the available data; risk cannot be quantified probabilistically from this dataset. No CISA KEV listing and no public proof-of-concept exploit have been identified. Real-world risk is materially elevated on multi-author WordPress sites (blogs, news sites, membership platforms) where Contributor accounts are granted to semi-trusted or user-registered parties - a common deployment pattern. Sites where Contributors are fully trusted internal staff face negligible real-world risk despite the technical vulnerability. The practical impact exceeds what C:L implies: if the protected posts contain premium or sensitive content, an attacker who sets a known password gains full read access to that content, not merely a partial disclosure.

Exploit ScenarioDerived

An attacker who holds or obtains a Contributor-level WordPress account on a target site crafts an authenticated AJAX POST request to the WordPress admin-ajax endpoint invoking ppw_free_set_password, supplying the post ID of any password-protected post and a chosen plaintext password. Because the handler applies the password without validating the requester's relationship to that post, the protection is immediately overwritten. The attacker then visits the post URL, submits their chosen password, and reads the previously restricted content in full.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 16, 2026

Insecure Direct Object Reference in the PPWP - Password Protect Pages WordPress plugin (all versions ≤ 1.9.20) allows any authenticated Contributor-level user to overwrite the password on any password-protected post site-wide, then access that previously restricted content. The vulnerability exists in the ppw_free_set_password AJAX handler, which accepts a user-controlled post identifier without verifying the requesting user's authorization over the target object (CWE-639). No public exploit or active exploitation (CISA KEV) has been identified at the time of analysis; a fix commit is available in the WordPress plugin repository.

RemediationAI

Update the PPWP - Password Protect Pages plugin to a version beyond 1.9.20. A code-level fix has been committed to the WordPress plugin SVN repository (changeset referenced at plugins.trac.wordpress.org/changeset?reponame=&old=3637624%40password-protect-page&new=3637624%40password-protect-page); however, the exact released patched version number is not independently confirmed from the available data - verify the current plugin version in the WordPress.org plugin directory before updating. As an interim compensating control, audit and restrict Contributor-level accounts on the affected WordPress installation to only fully trusted internal users, eliminating the untrusted-contributor attack surface entirely. Alternatively, deactivating the PPWP plugin will remove the vulnerable AJAX endpoint; note this will also remove all existing password protections the plugin manages, potentially exposing previously restricted content. There are no known non-disruptive workarounds short of patching or account restriction.

Affected VersionsENISA

PPWP – Password Protect Pages 0 ≤1.9.20

Affected Packages

euvd ppwp_password_protect_pages no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected product is the PPWP - Password Protect Pages plugin for WordPress (CPE: cpe:2.3:a:buildwps:ppwp_-_password_protect_pages:*:*:*:*:*:*:*:*), a plugin that wraps WordPress's native post-password feature with enhanced per-page access controls. The root cause is CWE-639 (Authorization Through User-Controlled Key): the ppw_free_set_password AJAX endpoint accepts a post ID - a user-supplied integer reference - and applies a new password to the identified post without first verifying that the authenticated user has any ownership or editorial rights over that specific post. WordPress contributors can legitimately create and submit posts but are not authorized to edit other users' content; the missing object-level authorization check collapses this boundary. This is a classic broken object-level authorization (BOLA/IDOR) pattern prevalent in WordPress plugin AJAX handlers that rely solely on nonce validation without subsequent resource-ownership checks.

Know when Wordpress Plugin gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Wordfence) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 5.4 MEDIUM

Unauthorized password modification of arbitrary posts constitutes an integrity impact (I:L) absent from the vendor vector; all other metrics align with the authenticated network-exploitable IDOR.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

DescriptionCVE.org

The PPWP - Password Protect WordPress | #1 Most-Reviewed Password Plugin plugin for WordPress is vulnerable to Insecure Direct Object Reference in all versions up to, and including, 1.9.20 via the ppw_free_set_password AJAX action due to missing validation on a user controlled key. This makes it possible for authenticated attackers, with Contributor-level access and above, to update the password on any password protected post and subsequently access the content.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Medium
popular WordPress plugin, notable install base among content-gated sites
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-11749 CRITICAL POC
9.8 Nov 05

The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy