WP Password Policy icon

WP Password Policy

WP Password Policy is a WordPress plugin with the following stats:

  • #7,151 Global Rank
  • 200+ active installs
  • 5/5 1 ratings
  • Since 2024 2 years active

PF Score (About PF Scores)

PF Score is not a quality guarantee. It is a ranking based on available public signals.

Silver61.3
Platinum
Gold
Silver
Bronze
Low

Score Breakdown

38.4
Popularity 40% 200+ active installs
61.9
Reputation 35% 5★ from 1 ratings
97
Freshness 25% Updated 1 months ago

No active penalty — 1 historical CVE, resolved — details

Download Trends

Loading download data…

Vulnerabilities

1 Total
1 Patched
0 Active
100% Resolved rate
CWE-269 · Improper Privilege Management

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.

8.8 High Affected All – 3.7.1 Patched in ✓ 3.7.2 Published 27 Jul 2026 CVE CVE-2026-15992

Vulnerability data provided by Wordfence Intelligence (opens in a new tab). CVE data: Copyright 1999–2026 The MITRE Corporation. CVE Terms of Use (opens in a new tab).

Support Statistics

1 Support threads
1 Resolved
100% Resolution rate

About WP Password Policy

Define and enforce password policies for your WordPress site with length, complexity, and expiration rules.

WP Password Policy lets you define and enforce password policies for all users on your WordPress site.

Set rules for password length, complexity (uppercase, lowercase, digits, special characters), restricted characters, password expiration, and more. The plugin validates passwords on login, registration, password changes, and during active sessions — automatically redirecting users to reset non-compliant passwords.

Key benefits:

  • Enforce password length and complexity rules from a single settings page.
  • Set password expiration to ensure users update their passwords regularly.
  • Require users to confirm their current password before making changes.
  • Compatible with WordPress multisite networks.

Whether you manage a personal blog, a membership site, or a multisite network, WP Password Policy helps you maintain consistent password standards across all user accounts.

Learn more at wppasswordpolicy.com.

Why password policies matter

Weak passwords remain one of the most common entry points for unauthorized access to WordPress sites. WP Password Policy lets you enforce the password-policy controls that many security and compliance programs call for — minimum length, character composition, expiration, restricted characters, and more — across every user account. It helps you apply these controls, but does not by itself make your site compliant with any particular standard.

Features

Free Features

  • Minimum password length — Set and enforce the minimum number of characters for user passwords.
  • Maximum password length — Limit password length to prevent denial-of-service attacks caused by hashing very long passwords.
  • Password complexity rules — Require a mix of uppercase letters, lowercase letters, digits, special characters, and a minimum number of unique characters.
  • Consecutive username symbols — Restrict how many consecutive characters from the username can appear in the password.
  • Restricted characters — Block specific characters from being used in passwords.
  • Restricted words and phrases — Maintain a site-wide list of words and phrases (one per line) that passwords cannot contain. Case-insensitive substring matching catches site-specific tokens such as your brand name, product names, your city, or a year token (for example: acme, summer, 2026).
  • Maximum password age — Force users to update their passwords periodically (e.g., every 30 days).
  • Minimum password age — Prevent users from changing their password too frequently, discouraging rapid cycling back to an old password.
  • Require current password — Add a “Current Password” field to the user profile screen and validate it before allowing password changes.
  • Custom password hints — Replace the default WordPress password hint with a policy-specific hint based on active rules.
  • Site Health integration — A Site Health test reports whether your plugin settings are properly configured.
  • Multisite/network support — Works with both standard and multisite WordPress installations.
  • AI integration — On WordPress 6.9+ with the MCP Adapter plugin, list, configure, and delete password policies through natural language commands from any connected AI provider.
  • Translation-ready — Localize the plugin into any language.

PRO Features

  • Prevent password reuse — Block users from reusing their previous passwords, encouraging new, unique passwords every time.
  • Custom password policies per role or user — Assign different password rules for administrators, editors, WooCommerce customers, or specific users.
  • Block common, weak passwords — Over 100,000 common passwords are blocked, preventing users from choosing easy-to-guess passwords.
  • Breached password screening (HaveIBeenPwned) — Screen passwords against the HaveIBeenPwned “Pwned Passwords” breach corpus using k-anonymity, so users cannot pick a password already exposed in a data breach. The full password never leaves your server.
  • Password expiry warning emails — Warn users by email on a schedule you configure before their password expires, so they can change it before being locked out.
  • Vendor-default account detection — Scan user accounts for risky patterns — default or predictable usernames, logins matching your domain, and unchanged display names — and review or dismiss each finding from a dedicated settings tab, a dashboard widget, and admin notices.
  • Integrations:
    • WooCommerce integration — Enforce password policies on WooCommerce login, registration, checkout account creation (including Store API), account details, password change, and password reset forms. Replaces WooCommerce’s built-in password strength meter with your policy rules.
    • Ultimate Member integration — Enforce password policies within Ultimate Member registration, login, password reset, and password change forms. Disables Ultimate Member’s built-in password strength option to avoid conflicts.
    • Tutor LMS integration — Enforce password policies on Tutor LMS student and instructor registration, login, password change, and password reset forms.
    • LifterLMS integration — Enforce password policies on LifterLMS registration (including checkout), account password change, and password reset forms. Replaces LifterLMS’s built-in password strength meter with your policy rules.
    • LearnPress integration — Enforce password policies on LearnPress registration, login, and password change forms.
    • Sensei LMS integration — Enforce password policies on Sensei LMS registration and login forms.
    • BuddyPress integration — Enforce password policies on BuddyPress registration, login, and password change forms.
    • bbPress integration — Enforce password policies on bbPress login and profile password change forms. Replaces bbPress’s built-in password strength meter with your policy rules.
  • Priority support and updates — Get premium email support and updates.

Learn more about the PRO version at wppasswordpolicy.com/pricing.

Video Tutorial

See the plugin in action:

Related Plugins

Looking for a way to force users to reset their passwords immediately? Check our Password Reset Enforcement plugin — it lets you require password resets site-wide, by role, or for individual users, with WP-CLI support for automation.

Screenshots

Password policy configuration overview.

Password policy configuration overview.

Customizable password policy rules.

Customizable password policy rules.

Password policy rules can be adjusted as needed.

Password policy rules can be adjusted as needed.

Enforcement on user password forms.

Enforcement on user password forms.

Frequently Asked Questions

How do I access the settings?

After activation, go to “Settings” > “WP Password Policy” in the WordPress admin. The settings page lets you enable or disable individual rules and configure their values.

What happens when a user’s password does not meet the policy?

On login, the user is redirected to the password reset form. On password change or registration, a clear error message explains which rules the password does not meet.

Does this plugin work with WooCommerce?

WooCommerce integration is available in the PRO version. It enforces password policies on WooCommerce login, registration, checkout account creation (including Store API), account details, password change, and password reset forms. It also replaces WooCommerce’s built-in password strength meter with your policy rules.

Does it work with LMS plugins like LifterLMS, Tutor LMS, LearnPress, or Sensei LMS?

Yes. The PRO version includes integrations for LifterLMS, Tutor LMS, LearnPress, and Sensei LMS. Password policies are enforced on registration, login, and password change forms within these plugins. See the integrations page for details.

Is the plugin compatible with WordPress multisite?

Yes. WP Password Policy supports both standard WordPress installations and multisite networks.

Can I set different password rules for different user roles?

Yes, with the PRO version you can create multiple password policies and assign them to specific user roles or individual users.

What is the difference between the free and PRO versions?

The free version provides a single global password policy with length, complexity, age, restricted characters, restricted words and phrases, and current password requirements. The PRO version adds per-role and per-user policies, password reuse prevention, a blocklist of over 100,000 common passwords, breached password screening via HaveIBeenPwned, password expiry warning emails, vendor-default account detection, and integrations with WooCommerce, Ultimate Member, LifterLMS, Tutor LMS, LearnPress, Sensei LMS, BuddyPress, and bbPress. See the pricing page for details.

Where can I find the unminified source code?

All source ships with the plugin: the plugin’s own JavaScript is in src/, and the bundled @teydeastudio/components and @teydeastudio/utils libraries are in deps/js/components/src/ and deps/js/utils/src/. To rebuild, install Node.js 20 and run npm install && npm run build in the plugin directory.

Ratings & Reviews

Recent Reviews

Loading reviews…

View all reviews on WordPress.org (opens in a new tab)

Changelog

3.7.2 (2026-07-17)

  • Security: fixed a privilege escalation vulnerability where a crafted request to the password reset form could assign any role, including Administrator, to an existing account. Exploiting it required a valid password reset link for an account the attacker already controls
  • Fixed an error on sites running PHP 7.4 caused by PHP 8.0+ syntax in the password compliance check; PHP 7.4 compatibility is restored

3.7.1 (2026-07-13)

  • Fixed an issue on the login and password-change screens when another plugin passes an empty login message
  • Dependencies updated
  • Code improvements

3.7.0 (2026-06-22)

  • Security hardening: tightened REST error responses and policy-context role validation (defense-in-depth audit follow-up)
  • New “Restricted words and phrases” list: define site-wide words and phrases that passwords may not contain, with a per-policy on/off toggle
  • Settings page tabs are now reflected in the URL, so a tab can be bookmarked and shared
  • Added a clear admin notice for unmet server requirements (minimum PHP/WordPress version, required extensions)
  • Dependencies updated
  • Code improvements

3.6.3 (2026-05-12)

  • Wording improvements re: “minimum unique characters” field
  • Updated the notice behavior to display as “error” rather than a “message”
  • Documented source code location in readme.txt (added FAQ entry)
  • Dependencies updated
  • Code improvements

3.6.2 (2026-04-16)

  • Compatibility with WordPress 7.0 confirmed
  • Dependencies updated
  • Formatting updates
  • Code improvements

3.6.1 (2026-03-20)

  • Plugin icon and assets updated
  • Security hardening – added missing escaping
  • Dependencies updated

3.6.0 (2026-03-14)

  • Abilities API implemented: password policies are now available in WordPress MCP server
  • Direct access protection added to all PHP files
  • Dependencies updated
  • Formatting updates
  • Unnecessary translation files removed since these are loaded from WordPress.org
  • Do not hardcode wp-login.php path for login form
  • Code improvements

3.5.0 (2026-01-28)

  • Support for restricting certain characters in passwords implemented
  • Dependencies updated
  • Code improvements

3.4.1 (2026-01-12)

  • Harden handling of the “allow_password_reset” filter to improve compatibility with third-party plugins

3.4.0 (2025-11-28)

  • Compatibility with WordPress 6.9 confirmed
  • Dependencies updated
  • Code improvements

(For older records, see the changelog.txt file).

Alternatives to WP Password Policy

Other WordPress plugins serving a similar purpose, ranked by relevance and PF Score.

Platinum98.7
Really Simple Security – Simple and Performant Security (formerly Really Simple SSL) icon

Really Simple Security

Hardens WordPress security with two-factor authentication, login protection, and vulnerability detection across 3 million active sites.

★ 4.9/5·3.0M+ installs·Updated 27 Jul 2026
Platinum98.3
Limit Login Attempts Security – Login Security, 2FA, Firewall, Brute Force Prevention icon

Limit Login Attempts Security

Defends WordPress logins with brute force protection, two-factor authentication, and IP blocking.

★ 4.8/5·1.0M+ installs·Updated 12 Aug 2026
Platinum98.0
Loginizer icon

Loginizer

Protects WordPress login pages from brute force attacks through automated threat detection and blocking.

★ 4.8/5·1.0M+ installs·Updated 3 Aug 2026
Platinum97.6
Wordfence Security – Firewall, Malware Scan, and Login Security icon

Wordfence Security

Firewall, malware scanner, and two-factor authentication for WordPress site security.

★ 4.7/5·5.0M+ installs·Updated 10 Aug 2026
Platinum96.9
ManageWP Worker icon

ManageWP Worker

Centralized dashboard for managing, backing up, and securing multiple WordPress sites simultaneously.

★ 4.6/5·1.0M+ installs·Updated 18 Aug 2026
Platinum95.5
Kadence Security – Password, Two Factor Authentication, and Brute Force Protection icon

Kadence Security

Adds login security, two-factor authentication, vulnerability scanning, and firewall protection to WordPress sites.

★ 4.6/5·700K+ installs·Updated 27 Jul 2026
Platinum95.5
MainWP Child – Securely Connects to the MainWP Dashboard to Manage Multiple Sites icon

MainWP Child

Connects multiple WordPress sites to a centralized self-hosted dashboard for management and monitoring.

★ 5/5·700K+ installs·Updated 5 Aug 2026
Platinum93.2
Safe SVG icon

Safe SVG

Enables SVG uploads while sanitizing files to prevent XML and vector-based security vulnerabilities.

★ 4.9/5·1.0M+ installs·Updated 14 Apr 2026
Platinum92.3
User Role Editor icon

User Role Editor

Edit, add, and delete WordPress user roles and capabilities through an admin interface.

★ 4.5/5·700K+ installs·Updated 21 May 2026
Platinum91.5
NinjaFirewall (WP Edition) – Advanced Security Plugin and Firewall icon

NinjaFirewall (WP Edition)

Web application firewall designed to protect WordPress sites from malware and security threats.

★ 4.9/5·100K+ installs·Updated 16 Aug 2026