WP Manifestindependent plugin directory
manifest / security / wp-limit-login-attempts-plugin

Security. Limiting login attempts + 2FA verification. WP Registry grade B. Medium-severity findings · 2 findingsWP RegistryMedium-severity findings · 2 findingsOpen the reportB

Protects WordPress against brute-force attacks by automatically blocking malicious IPs and adding lightweight 2FA.

★ 2stars
2composer installs
1.0.3latest · 1 year ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/tikhomirov/wp-limit-login-attempts-plugin/archive/refs/heads/main.zip

On Packagist as rwsite/wp-limit-login-attempts-plugin:

composer require rwsite/wp-limit-login-attempts-plugin
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

WordPress Security Plugin. Automatically blocked IP for many attempts login tries. + add lightweight 2FA by code.

WordPress Limit login attempts Plugin. Automatically blocked IP for many attempts login trys.



Releases

3 releases.

Tag
Published
1.0.3 latest
Jan 27, 2025 1 year ago
Apr 27, 2024 2 years ago
Apr 26, 2024 2 years ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.

B grade

Security

Security. Limiting login attempts + 2FA verification. 1.0.3 · audited by WP Registry

Medium-severity findings.

2 medium
Audited release
1.0.3
Findings
2
Worst severity
medium
Content hash
ec404199ca0ddec0ff48a2ef…

Findings

  • medium Client IP derived from spoofable forwarding headers

    insecure_config

    LimitLoginAttempts reads REMOTE_ADDR then overwrites from common proxy headers (e.g. HTTP_X_FORWARDED_FOR) without trusting only a configured proxy. Attackers can rotate forged client IPs to bypass attempt counters/blocks or poison ban lists.

    wp-limit-login-attempts-plugin.php:152-175

    Recommendation

    Only honor forwarded headers when behind a known reverse proxy; take the correct hop; validate IP format.

  • medium 2FA secret delete/regenerate uses wp_verify_nonce without action

    missing_nonce

    handle_secret_delete and handle_secret_regeneration call wp_verify_nonce($_POST['nonce']) with no action argument, weakening CSRF binding. Delete allows any user who can edit_user($id) to remove another user's totp_secret if they obtain a generic nonce.

    TwoFactorAuthorisation.php:195-220

    Recommendation

    Use check_ajax_referer with a dedicated action; require manage_options to delete another user's 2FA secret.

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.