Description
The WP Password Policy plugin for WordPress is vulnerable to Privilege Escalation in all versions up to and including 3.7.1. This is due to missing authorization checks and nonce verification in the `get_user()` function of the `Module_Password_Hint` class, which unconditionally calls `WP_User::set_role()` with the attacker-supplied `role` parameter on any account resolved via `$_POST['user_login']`, without confirming the requesting user holds the capability to assign roles. This makes it possible for authenticated attackers, with subscriber-level access and above, to escalate their own privileges to Administrator by submitting a crafted POST request — with `action` set to `createuser` and `role` set to `administrator` — to the password-reset form endpoint. The vulnerable code path is reachable via the `password_hint` filter hooked during the WordPress password-reset form render, meaning an attacker need only possess a valid password-reset cookie to reach the sink.
Published: 2026-07-28
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The WP Password Policy plugin for WordPress is vulnerable to privilege escalation in all versions up to and including 3.7.1. The flaw exists in the get_user() method of the Module_Password_Hint class, where a missing authorization check and nonce verification allow a crafted POST request to call WP_User::set_role() with an attacker‑supplied role. This can elevate a user with only subscriber‑level access to the Administrator role, compromising the entire site. The weakness is classified as CWE‑269: Missing Authorization.

Affected Systems

The vulnerability affects the WP Password Policy plugin from Teydeastudio, versions 3.7.1 and below. Any WordPress installation that has this plugin installed and enabled, where users can login, is at risk. No specific WordPress core version is required beyond the presence of the plugin.

Risk and Exploitability

The CVSS score of 8.8 indicates a high severity risk. The EPSS score of < 1% reflects a very low probability of exploitation in the wild at this time. The vulnerability is not listed in CISA’s KEV catalog. Attackers must be authenticated and possess a valid password‑reset cookie to reach the vulnerable code path, meaning that authorized users of the site can exploit it without additional privileges. If the plugin is present and not patched, the risk remains significant within the affected environment.

Generated by OpenCVE AI on August 3, 2026 at 14:32 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade WP Password Policy to a version newer than 3.7.1 to resolve the missing authorization bug
  • If an immediate update is not feasible, temporarily disable the password‑hint feature or remove the plugin to eliminate the attack surface
  • Restrict or monitor the password‑reset endpoint to block unauthorized POST requests that could attempt to change user roles

Generated by OpenCVE AI on August 3, 2026 at 14:32 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 29 Jul 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 28 Jul 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Teydeastudio
Teydeastudio wp Password Policy
Wordpress
Wordpress wordpress
Vendors & Products Teydeastudio
Teydeastudio wp Password Policy
Wordpress
Wordpress wordpress

Tue, 28 Jul 2026 19:00:00 +0000

Type Values Removed Values Added
Description The WP Password Policy plugin for WordPress is vulnerable to Privilege Escalation in all versions up to and including 3.7.1. This is due to missing authorization checks and nonce verification in the `get_user()` function of the `Module_Password_Hint` class, which unconditionally calls `WP_User::set_role()` with the attacker-supplied `role` parameter on any account resolved via `$_POST['user_login']`, without confirming the requesting user holds the capability to assign roles. This makes it possible for authenticated attackers, with subscriber-level access and above, to escalate their own privileges to Administrator by submitting a crafted POST request — with `action` set to `createuser` and `role` set to `administrator` — to the password-reset form endpoint. The vulnerable code path is reachable via the `password_hint` filter hooked during the WordPress password-reset form render, meaning an attacker need only possess a valid password-reset cookie to reach the sink.
Title WP Password Policy <= 3.7.1 - Authenticated (Subscriber+) Privilege Escalation
Weaknesses CWE-269
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Teydeastudio Wp Password Policy
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-07-29T14:01:03.473Z

Reserved: 2026-07-16T20:12:58.744Z

Link: CVE-2026-15992

cve-icon Vulnrichment

Updated: 2026-07-29T14:00:46.483Z

cve-icon NVD

Status : Deferred

Published: 2026-07-28T19:17:31.727

Modified: 2026-07-29T15:16:21.290

Link: CVE-2026-15992

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T14:45:04Z

Weaknesses
  • CWE-269

    Improper Privilege Management