Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Subscriber-level account on Multisite network
-
DeliveryPOST stage=gimmeanotherblog to signup route
-
ExploitSkip active_signup policy gate in tml_ms_signup_handler()
-
ExecutionExecute wpmu_create_blog() with attacker user ID
-
PersistReceive Administrator role on new subsite via add_user_to_blog()
-
ImpactInstall plugins or themes for potential code execution
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
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 an authenticated session with at least Subscriber-level access on the main site of a WordPress Multisite network running Theme My Login 7.1.15 or earlier. WordPress Multisite itself must be enabled - this is not a default configuration and requires deliberate server setup. The vulnerability is most impactful when |
| Impact | The provided CVSS 3.1 score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N) accurately captures the constrained blast radius: the attacker must already hold a Subscriber account, and the resulting Administrator role is scoped to a newly created subsite only - not the main site, not Super Admin, and not network-level capabilities like |
| Exploit ScenarioDerived | An attacker who holds - or creates - a Subscriber-level account on a WordPress Multisite network running Theme My Login ≤7.1.15 sends a crafted POST request with |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 05, 2026
Theme My Login plugin for WordPress (≤7.1.15) on Multisite installations allows authenticated Subscriber-level accounts to bypass the network's active_signup registration policy by posting directly to the gimmeanotherblog handler, which omits the policy gate enforced by sibling branches and unconditionally invokes wpmu_create_blog() with the attacker's user ID. WordPress core then assigns the Administrator role on the resulting subsite, granting full subsite control - including plugin and theme installation - to an otherwise low-privileged user. No public exploit code or CISA KEV listing has been identified; Wordfence reported the issue and a fix is confirmed in version 7.2.0.
RemediationAI
Update Theme My Login to version 7.2.0, which contains the authorization fix as confirmed by the SVN changeset at https://plugins.trac.wordpress.org/changeset?reponame=&new=3669722%40theme-my-login%2Ftags%2F7.2.0&old=3643898%40theme-my-login%2Ftags%2F7.1.15 and the trunk patch at https://plugins.trac.wordpress.org/changeset/3669721/theme-my-login/trunk/includes/ms-functions.php. If immediate upgrade is not feasible, network administrators can deploy a WAF rule to block POST requests containing stage=gimmeanotherblog to the Theme My Login signup endpoint; note that this may disrupt any legitimate multi-blog creation flows that depend on this handler branch. A further compensating control is to audit and remove untrusted Subscriber accounts from the main site, since exploitation requires a valid authenticated session - this trade-off reduces attack surface but may affect legitimate users. For networks where active_signup is already set to none, the configured policy provides no protection against this flaw and must not be relied upon as a mitigation. The Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/72585c12-baa9-4c63-8584-906a1d3b332f provides additional remediation context.
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
Theme My Login (CPE cpe:2.3:a:jfarthing84:theme_my_login:*:*:*:*:*:*:*:*) is a WordPress plugin that replaces default login pages and extends Multisite signup flows. The vulnerable logic resides in tml_ms_signup_handler() within includes/ms-functions.php. The gimmeanotherblog branch - designed to let existing users create additional subsites - checks only is_user_logged_in() for authorization, while sibling branches such as validate-blog-signup enforce the network-wide active_signup policy setting (lines 580, 661, 708 of ms-functions.php, as linked in the Trac references). CWE-862 (Missing Authorization) describes the root cause precisely: the function processes a sensitive, privileged action without verifying the caller is authorized under the network's configured policy. Because wpmu_create_blog() is called unconditionally once the branch is reached, WordPress core's subsequent call to add_user_to_blog() assigns the Administrator role on the new blog as a standard post-creation workflow step - making privilege escalation an inherent consequence of the missing gate rather than a separate logic flaw.
Know when Theme My Login 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:N/I:L/A:N
Subscriber-level authentication is a hard prerequisite (PR:L); integrity impact is limited to unauthorized subsite creation scoped to new subsite only (I:L); Multisite-only constraint does not raise AC since no special race or configuration window is required beyond Multisite being active.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Theme My Login plugin for WordPress is vulnerable to Missing Authorization in versions up to, and including, 7.1.15 on Multisite installations. This is due to the tml_ms_signup_handler() function's gimmeanotherblog branch failing to enforce the network's active_signup registration policy, checking only is_user_logged_in() while sibling branches such as validate-blog-signup apply the full policy gate. This makes it possible for authenticated attackers, with Subscriber-level access and above, to directly POST stage=gimmeanotherblog to Theme My Login's signup route, bypassing the configured registration policy entirely - even when it is set to none or user - which causes wpmu_create_blog() to execute with the attacker's user ID, after which WordPress core assigns the Administrator role on the newly created subsite via add_user_to_blog(). The privilege gain is scoped to the newly created subsite only; the attacker's account retains Subscriber-level access on the main site and does not obtain Super Admin or network-level capabilities such as manage_network or manage_sites.
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
More in Theme My Login
View allPrivilege escalation in the Theme My Login plugin for WordPress (versions up to and including 7.2.1) allows unauthentica
Privilege escalation in the Theme My Login WordPress plugin (versions before 7.2.0) allows low-privileged users to silen
Cross-Site Request Forgery in the Theme My Login WordPress plugin (versions ≤7.1.14) enables unauthenticated attackers t
EUVD-2026-71840
GHSA-6vjm-3j93-7v9p
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB