Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify WordPress site with plugin active
-
DeliveryConfirm public user registration is enabled
-
ExploitSend unauthenticated POST to /thlogin/v1/register with role=editor
-
ExecutionPlugin validates role via get_editable_roles() and accepts it
-
Persistwp_insert_user() creates account with editor privileges
-
ImpactAttacker logs in and gains full site content management access
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V8 - Authorization Least privilege enforcement
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation 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 the target WordPress site have public user registration explicitly enabled under Settings > General (the 'Anyone can register' checkbox) - this is disabled by default in WordPress and is the single gating prerequisite; sites without it are not exposed. The Themehunk Login Registration plugin must be installed, active, and at version 1.0.2 or earlier. No attacker authentication is required to invoke the /thlogin/v1/register REST endpoint. The maximum role achievable is bounded by whatever roles get_editable_roles() returns on the specific installation; on a standard WordPress deployment this includes editor, author, contributor, and subscriber, but not administrator (which is excluded from editable roles by default). Exploitation is further limited to sites where the Themehunk plugin's REST endpoint is actually handling registration rather than the WordPress core registration flow. |
| Impact | The provided CVSS vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L, score 6.3) contains a direct conflict with the CVE description: PR:L implies low-privilege authentication is required, yet the description explicitly identifies the REST endpoint as unauthenticated and states exploitation requires no prior account. This discrepancy should be verified with NVD or Wordfence before using the published vector for risk decisions. Independently, the impact metrics also appear underrated - gaining WordPress editor access represents substantially more than I:L, as editors can alter all published content site-wide. No EPSS score was provided in the available data, and the vulnerability does not appear in the CISA KEV catalog, so no confirmed active exploitation signal exists. The primary real-world limiting factor is that WordPress public user registration is disabled by default; sites not using self-registration are entirely unaffected. For those that do, the attack is trivially scriptable with a single HTTP POST, making the conditional risk meaningful once the prerequisite is satisfied. |
| Exploit ScenarioDerived | An attacker identifies a WordPress site with the Themehunk Login Registration plugin active and public user registration enabled, then sends a single unauthenticated HTTP POST to /wp-json/thlogin/v1/register with a JSON body including 'role': 'editor' alongside required registration fields. The plugin's get_editable_roles() check permits the value, wp_insert_user() creates the account at editor level, and the attacker immediately logs in to edit, publish, or delete all site content. No public exploit code has been identified at time of analysis, but the attack requires no specialized tooling - a standard HTTP client or browser developer tools suffice. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 08, 2026
Privilege escalation in the Themehunk Login Registration WordPress plugin (versions up to and including 1.0.2) allows unauthenticated attackers to self-register accounts with elevated roles - including editor - by supplying an arbitrary 'role' parameter to the publicly exposed /thlogin/v1/register REST endpoint. The handle_frontend_register() function validates the supplied role only against get_editable_roles(), which returns every administratively configurable role on the site, then passes it directly to wp_insert_user() without restricting it to the subscriber level expected for public self-registration. Exploitation is conditioned on public user registration being enabled on the target site; no public exploit code or CISA KEV listing has been identified at time of analysis.
RemediationAI
A code change has been committed to the WordPress Plugin SVN repository (changeset 3592690, referenced in the advisory), but no specific patched release version number has been confirmed in the available data - monitor the WordPress Plugin Directory for a version above 1.0.2 and verify its changelog explicitly addresses the role restriction in handle_frontend_register() before upgrading. The single most effective immediate mitigation is to disable public user registration under WordPress Settings > General by unchecking 'Anyone can register'; this eliminates the attack surface entirely since the vulnerability only triggers when registration is open, with no trade-off unless self-registration is a required site feature. If registration must remain enabled, temporarily deactivating the Themehunk Login Registration plugin and reverting to WordPress core registration is a viable interim control. Monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/8eee3809-133e-4fd9-ad49-cc6fe3822457 for patch version confirmation.
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 vulnerability exists in the handle_frontend_register() function of the REST API class within the Themehunk Login Registration plugin (CPE: cpe:2.3:a:themehunk:th_login_registration:*:*:*:*:*:*:*:*), registered at the unauthenticated /thlogin/v1/register WordPress REST endpoint. The root cause is CWE-269 (Improper Privilege Management): the plugin uses WordPress core's get_editable_roles() as a role allowlist during registration validation, but this function returns all roles that site administrators can assign - including editor, author, and contributor - rather than only the subscriber role appropriate for self-service account creation. The validated role is then passed directly to wp_insert_user() without any downgrade or restriction. Source code confirming the logic is visible in WordPress SVN at the tagged 1.0.2 release across multiple files in class-thlogin-rest-api.php (lines 82, 243, 782, and 811). The WordPress editor role confers broad site-wide content control: creation, editing, publishing, and deletion of all posts and pages, media uploads, comment moderation, and category management.
Know when Wordpress Plugin 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:L/UI:N/S:U/C:L/I:L/A:L
REST endpoint is explicitly unauthenticated per description (PR:N); editor role grants full site content control (I:H); no direct availability impact from account creation.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Themehunk Login Registration plugin for WordPress is vulnerable to privilege escalation in versions up to, and including, 1.0.2. This is due to the handle_frontend_register() function in the unauthenticated /thlogin/v1/register REST endpoint accepting a user-controlled 'role' parameter and validating it only against get_editable_roles() - which returns every defined editable site role, including 'editor' - before passing it to wp_insert_user(). This makes it possible for unauthenticated attackers, when public user registration is enabled, to create new accounts with the editor role.
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
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 AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
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
EUVD-2026-42217
GHSA-qwpf-8g3r-53wg
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB