Overview
A critical authentication bypass vulnerability has been disclosed in miniOrange OTP Login, Verification and SMS Notifications, a WordPress plugin developed by cyberlord92 that adds one-time-password login, verification, and SMS notification capabilities to WordPress sites. Tracked as CVE-2026-85984 and rated CVSS 9.8 (Critical), the flaw allows an unauthenticated attacker to log in as any existing administrator account by submitting nothing more than a known username and a crafted POST parameter — no password and no OTP required.
The vulnerability was publicly disclosed on September 26, 2026, and affects all plugin versions up to and including 5.5.5. As of publication, no public exploit code has been confirmed and the CVE has not been added to CISA's Known Exploited Vulnerabilities catalog, but the pre-authentication nature of the bug and the ubiquity of OTP-login plugins on WordPress sites make rapid weaponization plausible.
Technical Details
| Field | Value |
|---|---|
| CVE ID | CVE-2026-85984 |
| Severity | Critical |
| CVSS Score | 9.8 |
| CWE | CWE-287 (Improper Authentication) |
| Affected Product | miniOrange OTP Login, Verification and SMS Notifications |
| Affected Versions | All versions ≤ 5.5.5 |
| Vulnerable Parameter | mo_wp_login_intent (POST, unauthenticated, unvalidated) |
| Vulnerable Function | mo_by_pass_login() / mo_get_user() |
| Attack Vector | Network |
| Authentication Required | None |
| Privileges Required | None |
| User Interaction | None |
| Impact | Full administrator account takeover |
How It Works
The root cause is a missing password-intent guard in the skip_pass_fallback-enabled branch of the plugin's mo_by_pass_login() function. When an unauthenticated request submits the POST parameter mo_wp_login_intent with the value otp, the plugin's mo_get_user() routine treats administrator role membership alone as sufficient proof of identity — it never calls WordPress's own wp_authenticate_username_password() check, and instead resolves a WP_User object purely from a username lookup.
In practice, this means an attacker who knows (or guesses) a valid administrator username can submit a login request with an empty password and mo_wp_login_intent=otp, and the plugin will hand back an authenticated session for that administrator — bypassing both the password check and the OTP/SMS verification the plugin is supposed to enforce.
Exploitation Prerequisites
Exploitation depends on the site administrator having simultaneously enabled a specific combination of plugin settings:
- WP Login OTP
- Login with Only OTP
- Allow Users to Login with Username and Password
- Admin OTP Bypass
Sites that have not enabled this combination — or that do not use the plugin's OTP-bypass fallback feature at all — are not exploitable via this specific code path. However, given that these are precisely the settings site owners enable to make OTP login "convenient" for administrators, the vulnerable configuration is a realistic and likely common one among the plugin's active install base.
Impact Assessment
| Impact Area | Description |
|---|---|
| Confidentiality | Full read access to site content, user data, and configuration via the WordPress admin dashboard |
| Integrity | Attacker can create new admin accounts, install plugins/themes (including web shells), and modify site content |
| Availability | Attacker can lock out legitimate admins, delete content, or take the site offline |
| Blast Radius | Any WordPress site running a vulnerable version with the exploitable setting combination enabled |
| Exploitation Complexity | Low — requires only a known/guessable admin username and a single crafted HTTP POST request |
| Detection Difficulty | Moderate — bypass traffic can resemble legitimate OTP login attempts unless request bodies are inspected |
Who Is At Risk
- WordPress sites with the miniOrange OTP Login, Verification and SMS Notifications plugin active on version 5.5.5 or earlier
- Sites where WP Login OTP, Login with Only OTP, Allow Users to Login with Username and Password, and Admin OTP Bypass are all enabled together
- Multi-site or managed WordPress hosting environments where the plugin is bundled or enabled by default across many tenant sites
- Sites where administrator usernames are predictable (e.g.,
admin, company-name patterns, or exposed via author archive pages/REST API user enumeration)
Potential Attack Chains
- Username Enumeration — Attacker identifies a valid administrator username via WordPress's REST API, author archives, or login error messages
- Authentication Bypass — Attacker submits a login POST request with the target username, an empty password, and
mo_wp_login_intent=otp - Session Establishment —
mo_by_pass_login()resolves the user purely by username and grants an authenticated administrator session - Full Compromise — Attacker uses admin dashboard access to install a malicious plugin/theme for persistent remote code execution, create backdoor accounts, exfiltrate data, or pivot to other systems sharing credentials
Mitigation
Immediate Actions
- Update the plugin to the latest version available from the WordPress Plugin Directory. A fix has been committed upstream to the plugin's SVN repository; confirm the installed version is newer than 5.5.5 before considering the site remediated
- Disable the vulnerable setting combination immediately if an update is not yet deployable — turn off Admin OTP Bypass and/or skip_pass_fallback-related options in the plugin's login settings until patched
- Audit administrator accounts for unrecognized users, unexpected role changes, or recently installed plugins/themes that were not authorized
- Force a password reset for all administrator accounts and rotate any credentials or API keys stored in the WordPress environment as a precaution
Detection Opportunities
- Review web server and WAF logs for POST requests to
wp-login.php(or the plugin's login-handling endpoint) containingmo_wp_login_intent=otpcombined with an empty or missing password field - Look for successful administrator logins that do not correspond to a normal password-entry or OTP-delivery flow in plugin/application logs
- Monitor for new administrator account creation, plugin/theme installation, or file changes immediately following a suspicious login event
- Flag login attempts targeting known/common administrator usernames at unusual volume, which may indicate reconnaissance ahead of exploitation
Defence-in-Depth
- Deploy a Web Application Firewall rule to block or flag requests containing the
mo_wp_login_intentparameter with the valueotpfrom unauthenticated sessions - Disable WordPress user/username enumeration via the REST API and author archive URLs to reduce the attacker's ability to identify valid admin usernames
- Enforce strong, non-predictable administrator usernames separate from display names
- Apply the principle of least privilege — avoid granting Administrator role to accounts that do not require it, limiting the blast radius of any single compromised credential
- Maintain an up-to-date plugin inventory and subscribe to vulnerability feeds (Wordfence, Patchstack, WPScan) for the plugins in active use
Key Takeaways
- CVE-2026-85984 is a critical (CVSS 9.8) authentication bypass in the miniOrange OTP Login, Verification and SMS Notifications WordPress plugin, affecting all versions ≤ 5.5.5.
- The flaw stems from a missing password-intent guard in
mo_by_pass_login()— submittingmo_wp_login_intent=otplets the plugin skip password and OTP verification entirely. - Exploitation requires a specific combination of plugin settings (WP Login OTP, Login with Only OTP, Allow Users to Login with Username and Password, and Admin OTP Bypass) to be enabled together.
- A successful attack grants full, unauthenticated administrator access using only a known or guessed username.
- No public exploit code or in-the-wild exploitation has been confirmed as of publication, but the low complexity of the attack warrants urgent patching.
- Update the plugin immediately, or disable the vulnerable setting combination as an interim mitigation, and audit admin accounts for signs of prior compromise.