WP Manifestindependent plugin directory
manifest / security / username-protection

Username Protection WP Registry grade A-. Low-severity findings · 1 findingWP RegistryLow-severity findings · 1 findingOpen the reportA-

★ 0stars
1.5krelease downloads
≈180active sites
v1.1.3latest · 1 year ago

Install

Download codepotent-username-protection.zip From the v1.1.3 release on GitHub, May 31, 2025

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/azurecurve/username-protection/releases/download/v1.1.3/codepotent-username-protection.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Remove anonymous access to usernames in ClassicPress to help mitigate brute-force attacks. For visitors who are not logged in, usernames are removed from the REST API, feeds, author pages, and prevented from exposure through other common vectors of discovery.

About azurecurve

azurecurve was one of the first plugin developers to start developing for Classicpress; all plugins are available from azurecurve Development and are integrated with the Update Manager plugin for fully integrated, no hassle, updates.

The other plugins available from azurecurve are:

Releases

5 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v1.1.3 latest
May 31, 2025 1 year ago
codepotent-username-protection.zip
52
Feb 3, 2024 2 years ago
codepotent-username-protection.zip
1,033
Feb 4, 2023 3 years ago
codepotent-username-protection.zip
181
Jun 4, 2021 5 years ago
codepotent-username-protection-1.1.0.zip
179
Mar 24, 2020 6 years ago
codepotent-username-protection-1.0.0.zip
38

Active-site estimate ≈180 comes from the median of recent superseded releases. Method.

A- grade

Security

Username Protection 1.1.3 · audited by WP Registry

Low-severity findings only.

1 low
Audited release
1.1.3
Findings
1
Worst severity
low
Content hash
e4efa021c532660d7496356a…

Findings

  • low Username-enumeration REST block bypassable and clobbers other rest_authentication_errors results

    information_disclosure

    prevent_anonymous_username_enumeration() only blocks when $_SERVER['REQUEST_URI'] literally contains 'wp/v2/users'. An unauthenticated request to /?rest_route=%2Fwp%2Fv2%2Fusers (URL-encoded slashes) has no literal match, so the plugin returns null and core serves the user list with slugs, defeating the plugin's stated purpose. The '/wp/v2/posts' + _embed check sits inside the users branch and can never match, so /wp/v2/posts?_embed author data is never blocked. Also, because the filter returns null (not the incoming $result) on every non-matching request, it discards any WP_Error that an earlier-priority rest_authentication_errors callback (e.g. another hardening plugin that disables anonymous REST) has returned.

    codepotent-username-protection.php:311-342

    Recommendation

    Accept and return the incoming $result parameter; decide based on the parsed REST route (e.g. hook rest_pre_dispatch / rest_endpoints and check $request->get_route()) instead of a substring of REQUEST_URI, and handle the posts?_embed case outside the users branch.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.