OTP Login & Register Woocommerce <= 2.7.2 — Unauthenticated Authentication Bypass via Brute Force
CVE-2026-12215Published · Updated Action summary
Affected: ≤2.7.2Update to 2.7.3 or newer
All remediation steps- Severity
- Medium5.3
- CVSS
- 5.3CVSS 3.1 · CNA (Wordfence)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NWhat does this vector mean?
AV:NAttack vector- Network
AC:LAttack complexity- Low
PR:NPrivileges required- None
UI:NUser interaction- None
S:UScope- Unchanged
C:NConfidentiality- None
I:LIntegrity- Low
A:NAvailability- None
- Weakness
- CWE-434 Arbitrary File Upload
- Required access
- No account needed
- Exploit prediction (EPSS)
- No score
- CISA KEV
- Not listed
On this page8
Am I affected?
OTP Login & Register Woocommerce mobile-login-woocommerce
- Affected≤ 2.7.2
- Patched in2.7.3
Update to 2.7.3 or newer.
You are affected if you run ≤ 2.7.2. Version 2.7.3 and later are not affected by this issue.
- Check your version: in wp-admin go to Plugins → Installed Plugins and read the version under OTP Login & Register Woocommerce.
- No admin access? Run a passive check of your site. It reads public files only.
- No account is needed to exploit this. Treat any exposed site on an affected version as at risk.
What to do
- Update to version 2.7.3, or a newer patched version
- Rotate administrator passwords and application secrets if the site ran a vulnerable version while publicly reachable.
- Watch OTP Login & Register Woocommerce to get an email when the next vulnerability is published.
Advisory
Source description from Wordfence Intelligence, credited to d4ngvn.
The OTP Login & Register Woocommerce plugin for WordPress is vulnerable to Authentication Bypass via OTP Brute Force in all versions up to, and including, 2.7.2. The vulnerability exists because the OTP rate-limit attempt counter in `process_otp_form` is keyed exclusively on the attacker-controlled `xoo_ml_user_ip_data` cookie's `ip_address` field, allowing unlimited counter resets by simply rotating the cookie, while the OTP itself is generated with PHP's non-cryptographic `rand()` function over a default space of only 9,000 possible values (1000–9999), and both the OTP issuance endpoint (`xoo_ml_login_with_otp`) and verification endpoint (`xoo_ml_otp_form_submit`) are registered as unauthenticated `wp_ajax_nopriv` actions with no nonce or capability checks. This makes it possible for unauthenticated attackers to brute-force the OTP for any registered account and obtain a full WordPress authentication session — including for administrator accounts — via `wp_set_auth_cookie()` in `login_user_with_otp()`. Exploitation requires the attacker to know the target user's registered phone number, which is used to trigger OTP issuance via the unauthenticated `xoo_ml_login_with_otp` endpoint.
Exploits & references
Proof-of-concept & detection
No public proof-of-concept or detection template is known for this vulnerability.
Advisories & patches
- Advisorywordfence.com
Related CVEs
More in OTP Login & Register Woocommerce
All 6| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| Critical9.8 | Unauthenticated Account Takeover ≤2.7.2Update to 2.7.3 | CVE-2026-110135 | |
| Medium4.4 | Authenticated (Administrator+) Stored Cross-Site Scripting via 'fb-config' Setting ≤2.7.3Update to 2.7.4 | CVE-2026-12402 | |
| High8.8 | Missing Authorization to Arbitrary Options Update ≤2.6Update to 2.6.1 | CVE-2024-5324 | |
| High8.1 | Authentication Bypass to Privilege Escalation ≤2.2Update to 2.3 | CVE-2023-2706 | |
| Medium6.1 | Cross-Site Scripting ≤2.0Update to 2.1 | — |
- Critical9.8Unauthenticated Account Takeover
≤2.7.2Update to 2.7.3
- Medium4.4Authenticated (Administrator+) Stored Cross-Site Scripting via 'fb-config' Setting
≤2.7.3Update to 2.7.4
- High8.8Missing Authorization to Arbitrary Options Update
≤2.6Update to 2.6.1
- High8.1Authentication Bypass to Privilege Escalation
≤2.2Update to 2.3
- Medium6.1Cross-Site Scripting
≤2.0Update to 2.1
Same weakness (Arbitrary File Upload)
All Arbitrary File Upload| Severity | Vulnerability | CVE | Published |
|---|---|---|---|
| High7.2 | Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header | CVE-2026-120688 | |
| Critical9.8 | Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission | CVE-2026-125055 | |
| Critical9.8 | Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter | CVE-2026-119077 | |
| Medium5.3 | Unauthenticated Sensitive Information Exposure in 'search' Parameter | CVE-2026-121518 |
- High7.2Unauthenticated Stored Cross-Site Scripting via Comment User-Agent Header
EZ SQL Reports Shortcode Widget and DB Backup
≤5.25.25Update to 5.26.45
- Critical9.8Unauthenticated Arbitrary File Upload via File Upload via Public Form Submission
Chatterbug Forms – Fast, Flexible WordPress Form Builder
≤1.0.2Update to 1.1
- Critical9.8Unauthenticated PHP Object Injection to Remote Code Execution via 'form' Parameter
ELEX WordPress HelpDesk & Customer Ticketing System
≤3.3.9Update to 3.4.0
- Medium5.3Unauthenticated Sensitive Information Exposure in 'search' Parameter
Customer Reviews for WooCommerce
≤5.127.0Update to 5.128.0
Timeline
CVE published
Severity medium, CVSS 5.3
Record last updated
Sources & licenses
Wordfence record- Vulnerability data
- Wordfence Intelligence. [object Object] Licensed under the CC BY-SA 4.0.
- CVE® identifiers
- [object Object]. Used under the CVE Program. CVE® is a registered trademark of The MITRE Corporation.
- CVSS / CWE
- National Vulnerability Database (NVD), shown unmodified. This product uses the NVD API but is not endorsed or certified by the NVD.
- VulnCrest content
- Summary, remediation guidance and page layout © VulnCrest. Not sourced from NVD.
