# WP 2FA – Two-factor authentication for WordPress <= 4.2.1 - Authenticated (Subscriber+) Authentication Bypass via Application Passwords

- **ID:** WPSEC-2026-2586
- **Plugin:** WP 2FA – Two-factor authentication for WordPress (`wp-2fa`), https://wordpress.org/plugins/wp-2fa/
- **Affected versions:** all versions before 4.3.0
- **Fixed in:** 4.3.0 (Update to 4.3.0 or later.)
- **Severity:** Medium 5.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N)
- **Weakness:** CWE-287
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-05)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/wp-2fa
- **Fix released:** 2026-11-04
- **Published:** 2026-11-05
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2586/

## Description

The WP 2FA plugin for WordPress is vulnerable to Authentication Bypass via application passwords in all versions up to, and including, 4.2.1. This is due to the plugin applying its account-lock check only on the 'wp_authenticate_user' filter and its API-login restriction only on the 'authenticate' filter. WordPress core verifies application passwords for REST API requests outside both filters, and XML-RPC application-password logins skip 'wp_authenticate_user'. This makes it possible for authenticated attackers, with subscriber-level access and above, who hold a valid application password to keep using the REST API, and XML-RPC, after the plugin has locked the account for not setting up 2FA, and to use the REST API even though the plugin disables API login for 2FA-enrolled users.

## References

- https://wpsec.com/vuln/WPSEC-2026-2586/
- https://plugins.svn.wordpress.org/wp-2fa/tags/4.3.0/
- https://wordpress.org/plugins/wp-2fa/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2586/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
