Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Unauthenticated 'init' hook means PR:N, but a live unexpired magic link must exist and the ID be known - a condition beyond attacker control - so AC:H; full account takeover gives C/I/A High.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
Lifecycle Timeline
2DescriptionCVE.org
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.
AnalysisAI
Authentication bypass in the DoLogin Security plugin for WordPress (all versions through 4.3) lets remote attackers forge passwordless magic-link tokens and log in as any user, including administrators. The 32-character token is generated by seeding the Mersenne Twister PRNG (mt_srand) with a value derived from microtime() that carries only ~20 bits of entropy, so the entire token is a deterministic function of a ~10^6-value seed space that can be brute-forced offline. No public exploit identified at time of analysis, but the flaw was reported by Wordfence and the vulnerable code paths are cited directly in the WordPress plugin repository.
Technical ContextAI
The vulnerability is a classic weak-PRNG failure (CWE-338, Use of Cryptographically Weak PRNG). The plugin's dologin\s::rrand() token generator calls mt_srand((double) microtime() * 1000000), which discards the integer-seconds portion of microtime() and collapses the seed to roughly one million possible values (~20 bits). Every one of the 32 token characters is then drawn sequentially with mt_rand(), so knowledge of the seed fully reconstructs the token. Pswdless::try_login() compounds the flaw: it is bound to the unauthenticated WordPress 'init' hook, identifies the target account from the auto-increment numeric ID in the ?dologin=<id>.<hash> parameter, compares the hash with a non-constant-time '!=' operator (timing-side-channel exposure), and calls wp_set_auth_cookie() directly - bypassing wp_authenticate() and the plugin's own Auth::_has_login_err() brute-force lockout. Per the CPE (cpe:2.3:a:wpdo5ea:dologin_security), only the DoLogin Security plugin is affected; the underlying PHP mt_rand/mt_srand functions are not cryptographically secure and should never be used for security tokens.
RemediationAI
No vendor-released patch version is identified in the available data, so a fixed release cannot be cited; monitor the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/16bce371-b524-48eb-8537-3f9df802abd3?source=cve) and the WordPress.org plugin page for a release above 4.3 and upgrade as soon as it ships. As immediate compensating controls, disable the passwordless/magic-link login feature of DoLogin Security so no forgeable tokens are ever issued (trade-off: users lose passwordless login and must use standard credentials), and shorten the magic-link validity window well below the 7-day default to reduce the exposure window in which a live token can be brute-forced (trade-off: legitimate links expire sooner and may inconvenience users). Additionally restrict access to the login/init entry point with a WAF rule or rate-limit on requests carrying the ?dologin= parameter to blunt automated seed brute-forcing (trade-off: may block legitimate magic-link redemptions if tuned too tightly), and consider temporarily deactivating the plugin entirely if passwordless login is not business-critical.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42167
GHSA-3585-g468-xfc2