Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid nonce from ult-refresh-nonce endpoint
-
DeliverySubmit known credentials with junk-appended email
-
ExploitGate lookup via get_user_by fails and is skipped
-
Executionwp_signon sanitizes and authenticates real account
-
ImpactReceive valid wordpress_logged_in session cookie
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two concrete preconditions, not raw default-config access: (1) the attacker must already possess valid credentials (login identifier and password) for a specific target account, and (2) that account must be in a state the plugin's gate is meant to block - an unverified/pending-approval account or an administrator-suspended account - on a site using the Uncanny Toolkit Frontend Login Plus account-approval/suspension feature. The attack then exploits the parser differential: the raw unsanitized email passed to get_user_by() in the verification gate fails to match (so the gate is skipped), while wp_signon()'s sanitize_user() strips the appended junk and still authenticates the real account. The limiting factors are therefore credential knowledge and the account being in a gated state; the required nonce is NOT a limiter because it is freely obtainable from the unauthenticated ult-refresh-nonce endpoint in the same request. There is no user-interaction or attacker-side authentication requirement (PR:N in the supplied vector). |
| Impact | Signals are mixed in a way worth stating plainly. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, 9.8 Critical) and the vuln.today 'act_now' decision label both point to high urgency, and the flaw is confirmed by Wordfence (the reporting CNA). However, no EPSS probability, no CISA KEV listing, and no public exploit code are present in the supplied data, so there is no public exploit identified at time of analysis and no evidence of active exploitation - the 9.8/act_now rating rests on the vector and ease of triggering, not on observed in-the-wild activity. The most important nuance the raw 9.8 hides: this is not an arbitrary-account takeover. It bypasses only the plugin's account-approval and account-suspension gate, so the attacker must already possess valid credentials for a target account that is unverified or administrator-suspended. Impact is therefore high (full session as that account, including admin if an admin was suspended) but conditional on credential knowledge plus the plugin's gating feature being in use - a real limiter the PR:N score does not capture. Net: a genuine priority for sites running the Uncanny Toolkit login/approval feature, but the 'defeats a security control you already partly bypassed' framing makes it narrower than a classic unauthenticated RCE-grade 9.8. |
| Exploit ScenarioDerived | An attacker who already knows the username/email and password of an account that an administrator has suspended, or that is still pending account approval, targets a site running the Uncanny Toolkit login feature. They fetch a valid nonce from the unauthenticated ult-refresh-nonce endpoint in the same flow, then submit the login with junk characters appended to the email so the plugin's verification gate lookup fails and is skipped while WordPress core still resolves and authenticates the real account. No public exploit code is identified at time of analysis, though the vulnerable source lines and the fix changeset are publicly referenced. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 31, 2026
Authentication bypass in Uncanny LearnDash Toolkit 3.8.2 and earlier lets a network attacker who already knows a target account's credentials log in even when that account is pending approval, unverified, or administrator-suspended. The plugin's account gate checks the raw email value with get_user_by(), while the later wp_signon() call runs WordPress core's sanitize_user(), so appended junk causes the gate to be skipped while the real account still authenticates; the required nonce is freely obtainable from the unauthenticated ult-refresh-nonce endpoint. Risk signals are mixed: the supplied vector is 9.8 with PR:N and the decision label is act_now, but exploitation still requires valid credentials for an account in a gated state; no public exploit identified at time of analysis.
RemediationAI
Apply the upstream fix referenced by changeset 3773997 in the plugin's trunk and deploy a plugin release that contains it; the supplied data does not give an exact patched version number, so confirm the fixed release against the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/592b61a1-9ac9-4817-b154-1e39e50d8010?source=cve. The supplied sources describe no workaround, and the nonce endpoint is not a usable control because the nonce is freely obtainable from the unauthenticated ult-refresh-nonce endpoint. Sites that cannot update immediately should treat any use of the Frontend Login Plus account-approval or account-suspension gate as exposed and confirm a fixed release with the vendor before relying on that gate.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is a parser-differential authentication bypass (CWE-287) in the Frontend Login Plus component of the Uncanny Toolkit for LearnDash WordPress plugin, specifically the uo_login_action() handler and its email parameter. The plugin passes the raw, unsanitized email string to get_user_by() when evaluating whether an account is allowed to log in, but the subsequent wp_signon() call applies WordPress core's sanitize_user(), which strips appended junk characters. That split treatment lets the verification gate fail to match and be skipped while the real account is still resolved and authenticated. The CPE cpe:2.3:a:uncannyowl:uncanny_toolkit_for_learndash:*:*:*:*:*:*:*:* is a wildcard, while the description constrains affected versions to those up to and including 3.8.2; the referenced code is in src/classes/frontend-login-plus.php. The nonce needed to reach the handler is obtainable from the unauthenticated ult-refresh-nonce endpoint, so nonce acquisition does not limit exploitation.
Know when Uncanny Toolkit For Learndash gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Network, trivial parser trick with freely-obtainable nonce (AV:N/AC:L), no attacker privileges or interaction needed (PR:N/UI:N); full session of the resolved account yields C/I/A:H, contingent on possessing that account's credentials.
Primary rating from Vendor (Wordfence).
CVSS VectorNVD
DescriptionNVD
The Uncanny Toolkit for LearnDash plugin for WordPress is vulnerable to Authentication Bypass in versions up to, and including, 3.8.2 via the email parameter of the uo_login_action() function. This is due to a parser-differential flaw in which the plugin's account-verification gate resolves the submitted email value using the raw, unsanitized string passed to get_user_by(), while the subsequent wp_signon() call relies on WordPress core's internal sanitize_user() to strip appended junk characters - causing the gate lookup to fail and be skipped entirely while the real account is still resolved and authenticated. This makes it possible for unauthenticated attackers to log in to unverified or administrator-suspended accounts whose credentials they already possess, obtaining a valid wordpress_logged_in session cookie and defeating the plugin's account-approval and account-suspension controls. The nonce required to reach the handler is freely obtainable in the same request from the unauthenticated ult-refresh-nonce endpoint, making exploitation trivial for any attacker with network access to the site and knowledge of a target account's credentials.
Articles & Coverage 1
Executive ViewAI
CVE-2026-119096 is a critical authentication bypass in Uncanny LearnDash Toolkit (versions ≤3.8.2) that allows an attacker with valid credentials for a suspended, unverified, or pending account to log in despite the account gate. This undermines access controls for learner accounts, potentially enabling unauthorized access to course content, user data, and administrative functions, and should be of concern to leadership due to the risk of insider threats or compromised accounts bypassing approval workflows.
No vendor-released patch identified at time of analysis. Interim mitigations include: disable the plugin if feasible; restrict access to the ult-refresh-nonce endpoint via web server rules (e.g., block requests to /wp-json/.../ult-refresh-nonce or the corresponding AJAX action) to prevent nonce retrieval; enforce strict account approval workflows at the WordPress core level; monitor authentication logs for anomalies; and apply virtual patching via a web application firewall to detect and block crafted login attempts that exploit this bypass.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Account takeover is possible in Uncanny Toolkit for LearnDash (WordPress plugin) before 3.8.2: the plugin's password-res
URL Redirection to Untrusted Site ('Open Redirect') vulnerability in Uncanny Owl Uncanny Toolkit for LearnDash.6.4.3. Ra
Broken authorization in the Uncanny Toolkit for LearnDash WordPress plugin before 3.8.2 lets a subsite administrator on
Cross-Site Request Forgery (CSRF) vulnerability in Uncanny Owl Uncanny Toolkit for LearnDash plugin <= 3.6.4.1 versions.
EUVD-2026-114649
GHSA-c7cc-xqvj-xcq2
NVD
CVE.org
EPSS
Exploit-DB