Limit Login Attempts Reloaded <= 3.4.0 - Unauthenticated Two-Factor Authentication Bypass via Failed Two-Factor Handshake
- ID
- WPSEC-2026-2633
- Plugin
- Limit Login Attempts Security – Brute Force Protection, 2FA, Firewall & Login Security (limit-login-attempts-reloaded)
- Affected
- from 3.0.0 before 3.4.1
- Remediation
- Update to 3.4.1 or later.
- CVSS 3.1
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
- Weakness
- CWE-636
- Usage
- Plugin Medium · Affected versions Medium among sites WPSec scans, 2026-11-06
- Attack surface
- Limit Login Attempts Reloaded on WPSec AttackSurface
- Fix released
- Published
Description
The Limit Login Attempts Security plugin for WordPress is vulnerable to Two-Factor Authentication Bypass via the two-factor login handshake in all versions up to, and including, 3.4.0, due to the two-factor flow failing open: whenever the handshake with the two-factor service did not succeed (handshake rate limit reached, repeated attempt in the same request, missing provider, a request payload that could not be encoded, or a rejected or unusable response), the check returned without an error and WordPress completed a password-only login. The handshake rate limit can be reached on purpose by repeating the login, and the raw X-Forwarded-For header was placed unsanitized into the handshake payload, so invalid UTF-8 caused JSON encoding to fail. This makes it possible for unauthenticated attackers who know the password of a 2FA-protected account to deliberately make the handshake fail and log in without the second factor. Exploitation requires two-factor authentication to be enabled for the targeted user's role and the attacker to know the account password.
References
- https://wpsec.com/vuln/WPSEC-2026-2633/
- https://plugins.svn.wordpress.org/limit-login-attempts-reloaded/tags/3.4.1/
- https://wordpress.org/plugins/limit-login-attempts-reloaded/
Published by WPSec. Provided as is, without warranty. Corrections: contact us.
This advisory as JSON or Markdown · All advisories: JSON, RSS