CVE-2026-14495
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Summary
The DoLogin Security plugin for WordPress is vulnerable to Authentication Bypass via Insufficient Randomness in all versions up to, and including, 4.3. The vulnerability exists because dologin\s::rrand() seeds the Mersenne Twister with mt_srand((double) microtime() * 1000000) — discarding the integer-seconds component of microtime() and constraining the seed to a range of approximately 10^6 values (~20 bits of entropy) — after which every character of the 32-character magic-link token is drawn sequentially with mt_rand(), making the entire token a deterministic function of that seed. Because Pswdless::try_login() is registered on the unauthenticated init hook, resolves the target account by the auto-increment numeric ID embedded in the ?dologin=<id>.<hash> parameter, performs the hash comparison using a non-constant-time != operator, and then calls wp_set_auth_cookie() directly — never passing through wp_authenticate() and therefore never triggering the plugin's own Auth::_has_login_err() lockout — an unauthenticated attacker can brute-force the ~10^6-candidate seed space to reconstruct an active passwordless login token and authenticate as any targeted user, including administrators, without a password. Exploitation requires that a valid, unexpired passwordless login link (active for up to 7 days) exists for the target account at the time of the attack, and that the numeric link ID is known or guessable from the auto-increment primary key.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| wpdo5ea | DoLogin Security | 0 <= 4.3 | affected |
Weaknesses
- CWE-338: CWE-338 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)
ADP Enrichment
CISA ADP Vulnrichment
- SSVC:
- Exploitation: none
- Automatable: no
- Technical Impact: total
References
- https://www.wordfence.com/threat-intel/vulnerabilities/id/16bce371-b524-48eb-8537-3f9df802abd3?source=cve
- https://plugins.trac.wordpress.org/browser/dologin/tags/4.3/src/pswdless.cls.php#L86
- https://plugins.trac.wordpress.org/browser/dologin/tags/4.3/src/s.cls.php#L240
- https://plugins.trac.wordpress.org/browser/dologin/tags/4.3/src/pswdless.cls.php#L197
- https://plugins.trac.wordpress.org/browser/dologin/tags/4.3/src/pswdless.cls.php#L27
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.