Skip to main content

DoLogin Security EUVDEUVD-2026-42167

| CVE-2026-14495 HIGH
Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) (CWE-338)
2026-07-08 Wordfence GHSA-3585-g468-xfc2
8.8
CVSS 3.1 · Vendor: Wordfence
Share

Severity by source

Vendor (Wordfence) PRIMARY
8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
8.1 HIGH

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Analysis Generated
Jul 08, 2026 - 06:26 vuln.today
CVE Published
Jul 08, 2026 - 05:34 nvd
HIGH 8.8

DescriptionCVE.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.

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

CVE-2024-5084 CRITICAL POC
9.8 May 23

The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil

CVE-2024-44000 CRITICAL POC
9.8 Oct 20

Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote

CVE-2020-36847 CRITICAL POC
9.8 Jul 12

The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner

CVE-2025-27007 CRITICAL POC
9.8 May 01

The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2024-4443 CRITICAL POC
9.8 May 22

The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based

CVE-2024-1698 CRITICAL POC
9.8 Feb 27

SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a

CVE-2023-6875 CRITICAL POC
9.8 Jan 11

The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i

CVE-2024-1512 CRITICAL POC
9.8 Feb 17

The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base

CVE-2024-4295 CRITICAL POC
9.8 Jun 05

The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in

CVE-2024-50498 CRITICAL POC
10.0 Oct 28

Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u

Share

EUVD-2026-42167 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy