Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRequest /register/ or call nopriv AJAX endpoint
-
DeliveryRead hidden uwp_register_hash from response
-
ExploitDerive shared dummy-user password from hash
-
ExecutionAuthenticate as dummy account via wp-login.php
-
ImpactAccess/alter data, escalate if role elevated
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 that an administrator has previously created the 25 built-in dummy user accounts via the UsersWP plugin's Tools page; on sites that never used this feature there are no dummy accounts to authenticate as and the attack yields nothing. Given that precondition, no authentication and no user interaction are needed: the uwp_register_hash field is exposed unauthenticated through both the public /register/ page and the wp_ajax_nopriv_uwp_ajax_register_form AJAX handler, and the latter remains reachable even when user registration is disabled. The principal limiting factors are therefore the dummy-user precondition and the actual role assigned to those dummy accounts - meaningful privilege escalation only occurs if a dummy account was given an elevated role; otherwise impact is limited to access at the dummy account's privilege level. |
| Impact | This is a genuine but conditional, mid-severity issue rather than a top-tier emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N, base 6.5) reflects unauthenticated network exploitation at low complexity against default configurations - a single unauthenticated HTTP request to /register/ or the wp_ajax_nopriv_uwp_ajax_register_form handler returns the uwp_register_hash field whose full 25-character value is the same SHA256 hash the plugin truncates to derive the shared dummy-account password. That is a clean, deterministic bug with no user interaction. The vuln.today decision label is this_month, not act_now/emergency, which is consistent with the real-world picture: there is no CISA KEV listing (not actively exploited per available data) and no EPSS score was supplied, so probability of near-term mass exploitation cannot be quantified from the input. The low/low confidentiality and integrity impact caps the raw severity, and real risk is heavily gated by one precondition the CVSS vector does not capture - an administrator must have previously created the 25 built-in dummy users via the plugin's Tools page; sites that never used that feature are not exploitable. Escalation to a serious compromise further depends on whether any dummy account was assigned an elevated role, which is not confirmed in the available data. Net: a real priority to patch this month, but its severity in a given environment swings on configuration that the single 6.5 number does not express. |
| Exploit ScenarioDerived | An unauthenticated attacker requests the plugin's public /register/ page (or calls the wp_ajax_nopriv_uwp_ajax_register_form AJAX endpoint, which works even when registration is disabled) and reads the hidden uwp_register_hash value from the response. Because that value is the full SHA256 hash from which the shared dummy-user password is a substring, the attacker derives the password offline and logs in through wp-login.php as a built-in dummy account such as antawn, chynna, or kiki. No public working exploit is identified in the input, though Wordfence has published an advisory and the vulnerable source lines are visible in the plugin's trac repository. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 31, 2026
Unauthenticated attackers can recover the shared password protecting UsersWP's 25 built-in dummy user accounts - in all plugin versions up to and including 1.2.78 - from a single HTTP request, then authenticate as accounts such as antawn, chynna or kiki through wp-login.php. The value is derived as the first 15 characters of a SHA-256 hash of AUTH_KEY concatenated with site_url(), while the full 25-character hash of that same input is rendered into the hidden uwp_register_hash field on every registration form, reachable via the public /register/ page and the wp_ajax_nopriv_uwp_ajax_register_form AJAX handler even when user registration is switched off. Impact is conditional rather than universal: an administrator must previously have created the dummy users from the plugin's Tools page, and meaningful privilege escalation only occurs where one of those accounts was given an elevated role; no public exploit code has been identified at time of analysis.
RemediationAI
A fix appears to have landed in the plugin trunk via changeset 3774438 (https://plugins.trac.wordpress.org/changeset/3774438/userswp/trunk/includes/class-tools.php), so treat 1.2.78 as the last known vulnerable release and update UsersWP once a tagged release carrying that change is confirmed - the supplied data does not state a released fixed version number, so verify the changelog before assuming any specific version is patched. Where updating must wait, the most direct mitigation is to remove the precondition: delete the 25 dummy accounts created earlier from the Tools page, after which the leaked hash has no account to authenticate against - the trade-off is loss of the plugin's demo/test users. Rotating AUTH_KEY and the WordPress salts in wp-config.php also invalidates the currently derived password because the hash input changes; the side effect is that all logged-in users are signed out and any other plugin relying on those salts is affected. Because the hash is served by both the public /register/ page and the nopriv AJAX action, restricting or blocking requests to /register/ and to admin-ajax.php actions carrying uwp_ajax_register_form reduces exposure but can break legitimate front-end registration flows on sites that use them. Finally, audit the roles assigned to any dummy accounts, since escalation only occurs where an administrator granted them elevated capabilities; the vendor's complete remedy is to apply the updated plugin code.
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
This is an improper authentication weakness (CWE-287) in a WordPress plugin written in PHP. UsersWP creates a set of 25 built-in dummy accounts through its admin Tools page and assigns them all a single shared password generated by get_dummy_user_passowrd(), which returns the first 15 characters of substr(hash('SHA256', AUTH_KEY . site_url()), 0, 25). Separately, the plugin embeds the full 25-character value of that same hash in a hidden uwp_register_hash field on registration form markup - code referenced in class-templates.php and class-forms.php of the 1.2.78 tag. Because the leaked value is a strict prefix-extension of the password (the password is simply its first 15 characters), an attacker who fetches a registration form learns the dummy-account credential without needing to know AUTH_KEY or the site URL, and without any cryptographic work. The exposure path is unauthenticated by design: the /register/ page is public and the wp_ajax_nopriv_uwp_ajax_register_form hook is a WordPress nopriv AJAX action, which remains callable even when an administrator has disabled user registration in plugin settings. The hash is salted with the site-specific AUTH_KEY and site_url(), so the derived password differs between installations rather than being a single universal default; the practical consequence is that a leaked hash is only useful against the site that emitted it. Successful authentication lands the attacker in a dummy account, so the realized impact scales with the role attached to those accounts - low-privilege access is the baseline, with privilege escalation only where an administrator elevated a dummy user.
Know when PHP 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:L/I:L/A:N
A single unauthenticated request discloses the hash deterministically, so AV:N/AC:L/PR:N/UI:N; account access yields limited confidentiality and integrity (C:L/I:L) with no availability impact and no scope change.
Primary rating from Vendor (Wordfence).
CVSS VectorNVD
DescriptionNVD
The UsersWP - Front-end login form, User Registration, User Profile & Members Directory plugin for WordPress is vulnerable to unauthorized account access via Use of Predictable Password in all versions up to, and including, 1.2.78 The vulnerability exists because get_dummy_user_passowrd() derives the shared password for all 25 built-in dummy user accounts as the first 15 characters of substr(hash('SHA256', AUTH_KEY . site_url()), 0, 25), while the full 25-character value of that same hash is simultaneously embedded in the hidden uwp_register_hash field rendered on every registration form response - reachable without authentication via both the public /register/ page and the wp_ajax_nopriv_uwp_ajax_register_form AJAX handler, even when user registration is disabled. This makes it possible for unauthenticated attackers to recover the dummy user password directly from a single HTTP request and use it to authenticate as any of the 25 built-in dummy accounts (such as antawn, chynna, or kiki) through wp-login.php, potentially achieving privilege escalation if any dummy account holds an elevated role. Exploitation requires that an administrator has previously created dummy users via the plugin's Tools page.
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.
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-114605
GHSA-8qfx-8gpq-wc4q
NVD
CVE.org
EPSS
Exploit-DB