Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as sales_rep user
-
DeliveryReassign contact to administrator user ID
-
ExploitInsert {auto_login_link} note replacement tag
-
ExecutionRead generated auto-login URL from note
-
ImpactVisit URL to authenticate as administrator
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 | Requires an authenticated WordPress account at sales_rep role or higher - specifically one holding the default edit_contacts, view_notes, and add_notes capabilities - but critically NOT the edit_users or promote_users capabilities, which is exactly why this is a privilege-escalation flaw. The vulnerable path is the process_edit() function on the Groundhogg contacts admin page (contacts-page.php), which fails to verify ownership or capability on the contact's 'user' parameter, letting the attacker relink a contact to an arbitrary (administrator) WordPress user ID. Exploitation further relies on the {auto_login_link} replacement tag being processable in note content and the resulting permissions-key auto-login URL being stored in and readable from the note. No special non-default server configuration is required beyond having the plugin installed (version <= 4.9) and possessing the sales_rep-or-above account; the primary limiting factor is that the attacker must already hold such an authenticated low-level account, not anonymous access. |
| Impact | This is a genuine high-priority issue rather than an inflated-CVSS artifact. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N) and the detailed description agree with each other: a low-privileged but authenticated WordPress user (sales_rep role and above, holding edit_contacts/view_notes/add_notes by default) can achieve full administrator takeover over the network with no user interaction and low attack complexity. The CWE-269 (Improper Privilege Management) classification, the C:H/I:H/A:H impact, and the described end state (authenticating as a targeted administrator) are internally consistent, and the GitHub fix commit directly corroborates the root cause by adding a can_link_contact_to_user() capability gate on the user_id parameter and redacting sensitive auto-login logs. Conflicting/missing signals to note explicitly: no EPSS score, no CISA KEV listing, and no POC indicator were provided, so exploitation probability and in-the-wild activity cannot be quantified from this data - exploitation status is therefore 'no public exploit identified at time of analysis', NOT active exploitation. The practical risk ceiling is high (full admin compromise), but realization depends on an attacker already holding a sales_rep-or-higher account, which bounds the threat to environments that grant such accounts to semi-trusted or externally-reachable users. |
| Exploit ScenarioDerived | An authenticated user with sales_rep-level access edits a contact record and reassigns its linked WordPress user ID to an administrator's account, exploiting the missing ownership/capability check in process_edit(). They then add a note containing the {auto_login_link} replacement tag, read back the generated valid auto-login URL via their default view_notes capability, and visit it to authenticate as the administrator. No public exploit was identified in the provided data, though the attack path is fully described and the fixing commit is public. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Privilege escalation in the Groundhogg CRM, Newsletters, and Marketing Automation WordPress plugin (all versions up to and including 4.9) lets any authenticated user holding the default sales_rep role - which carries edit_contacts, view_notes, and add_notes but not edit_users or promote_users - take over an administrator account. The vulnerable process_edit() handler in the contacts admin page accepts an attacker-supplied 'user' parameter without an ownership or capability check, so a contact can be relinked to an administrator's WordPress user ID; generating a note containing the {auto_login_link} replacement tag then produces a valid permissions-key auto-login URL for that contact, which the attacker reads back through view_notes and visits to authenticate as the administrator. The assessed vector is CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8), and the flaw requires an existing low-privileged account rather than anonymous access; no public exploit code or confirmed active exploitation was identified at time of analysis.
RemediationAI
Upgrade Groundhogg to 4.9.1 or later immediately - that is the vendor-released fixed version, confirmed by the plugin-directory changeset (new=3724910@groundhogg/tags/4.9.1&old=3724058@groundhogg/tags/4.9) and by upstream commit 804abf42a, and it is the only fully effective remedy since the vulnerable logic lives in plugin code rather than configuration. Where an immediate upgrade is not possible, the highest-value compensating control is to strip the edit_contacts capability (and, where feasible, view_notes and add_notes) from all sales_rep-level and other non-administrative roles using a role editor such as a capability-management plugin; the trade-off is that those users lose contact editing and note functionality entirely, which will interrupt normal CRM workflows. Because exploitation requires an authenticated low-privileged account, restricting or disabling dormant sales_rep accounts, enforcing strong authentication and MFA on all such accounts, and auditing role assignments for stray edit_contacts grants meaningfully raise the preconditions for attack, though none of these removes the flaw. As a detective measure, review existing contact notes and email logs for the {auto_login_link} replacement tag or for stored permissions-key URLs and treat any such entry created by a non-administrator as evidence of attempted exploitation; note that this review is best performed after upgrading, since 4.9.1 also restricts non-super-admin visibility of sensitive email logs. Finally, monitor the Wordfence advisory page for any updated guidance and verify that no contact record has been relinked to an unexpected WordPress user ID.
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 root-caused in CWE-269 (Improper Privilege Management) within the Groundhogg plugin's contact-editing pipeline. Groundhogg stores contact records that can be tied to a WordPress user via a user_id column, and that linkage decides whose account any auto-login link generated for the contact will authenticate as. In the affected 4.9 code, the contacts admin page handler (admin/contacts/contacts-page.php, around the process_edit() path) sanitized and saved submitted contact fields without verifying that the caller may alter the linked user - a check that would normally require edit_users or promote_users. A parallel weakness existed in the auto-login machinery: generate_permissions_key() / check_permissions_key() in includes/functions.php minted and validated permissions-key URLs, and the {auto_login_link} replacement tag (includes/replacements.php) could be embedded in a contact note and stored there, with the note content readable by the same low-privileged roles through the note class (includes/classes/note.php) and the view_notes/add_notes capabilities. The 4.9.1 fix (commit 804abf42a) adds a can_link_contact_to_user() gate in includes/classes/contact.php so user_id is dropped from sanitized data unless the caller may edit that user, tightens check_permissions_key() so a key only serves the visitor's own contact, re-registers auto-login keys with the redactor, and hardens the email-log DB layer (db/email-log.php) with an as_system() wrapper plus additional is_hidden() restrictions so sensitive logs (password resets, auto-login links) are visible only to super admins. That last change is notable because it closes the related class of leak that made sensitive logged URLs readable by non-super-admin users.
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:H/I:H/A:H
Network-reachable wp-admin action by an authenticated low-privilege sales_rep (PR:L, AV:N, AC:L, no UI); escalation to admin yields full C/I/A impact, scope unchanged as it stays within WordPress's own authorization context.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Groundhogg - CRM, Newsletters, and Marketing Automation plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 4.9 This is due to a missing ownership and capability check on the user parameter within the process_edit() function, which allows any authenticated user with the edit_contacts capability to reassign a contact record's linked WordPress user ID to any arbitrary account without requiring the edit_users or promote_users capabilities. This makes it possible for authenticated attackers, with sales_rep-level access and above, to escalate their privileges to administrator by linking a contact to an administrator's WordPress user ID, then creating a note containing the {auto_login_link} replacement tag to trigger generation of a valid auto-login permissions-key URL for the administrator-linked contact, and finally visiting that URL to authenticate as the targeted administrator. The auto-login URL is stored in the note content and is readable back by the attacker via the view_notes and add_notes capabilities that the sales_rep role holds by default.
Executive ViewAI
The Groundhogg CRM, Newsletters, and Marketing Automation WordPress plugin (versions up to and including 4.9) contains a high-severity privilege escalation flaw that allows an authenticated low-privileged sales_rep user to take over an administrator account. Because the plugin is commonly embedded in customer-facing WordPress environments, a successful exploit could give an attacker full control of the site, access to customer data, and the ability to alter marketing communications. Leadership should prioritize remediation because no vendor-released patch is currently available, no public exploit was identified at time of analysis, and the affected plugin may be present in production marketing or CRM workflows.
No vendor-released patch identified at time of analysis. Interim mitigations: disable or remove the Groundhogg plugin where not essential; remove or restrict the default sales_rep role and its edit_contacts, view_notes, and add_notes capabilities; audit for unexpected administrator accounts and {auto_login_link} note generation; deploy WAF/virtual patching to block manipulation of the 'user' parameter in contact edit requests; rotate administrator credentials and review logs for unauthorized admin logins.
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 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
Remote code execution in the WP Query Console WordPress plugin (versions up to and including 1.0) by Ajit Bohra allows u
EUVD-2026-96095
GHSA-p495-v7fq-hqr5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB