Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Sales Representative
-
DeliveryPOST contact payload carrying admin user_id
-
ExploitBypass ownership guard in Contacts_DB::add() upsert
-
ExecutionMint auto_login_url via v4 email-test endpoint
-
ImpactConsume link to gain Administrator session
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 account at the Groundhogg Sales Representative role or higher - specifically one holding both the add_contacts capability (to reach POST /gh/v3/contacts) and the send_emails capability (to reach POST /gh/v4/emails/test). Exploitation is only possible on sites running Groundhogg 4.9 or earlier that have provisioned these non-administrator roles to the attacker; it is not pre-authentication. The core precondition is that the v3 create_contact path forwards the security-bearing user_id column into the Contacts_DB::add() upsert, which lacks the ownership guard enforced by Contacts_DB::update(). Limiting factors: the attacker must obtain a valid Sales-Rep-level login, and sites that do not delegate these roles to untrusted parties are not realistically exposed. |
| Impact | This is a genuine high-priority issue rather than a CVSS-inflated one, but with an important caveat on preconditions. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 8.8) describes a network-reachable, low-complexity attack requiring only low privileges and no user interaction, yielding full confidentiality/integrity/availability loss - consistent with the described full WordPress Administrator takeover via a clean two-request chain. CWE-269 (improper privilege management) is the correct weakness class. The key limiting signal is PR:L: the attacker must already hold a Sales Representative (or higher) account, so this is privilege escalation from an authenticated foothold, not a pre-auth internet-wide bug, which meaningfully narrows the exposed population. No EPSS score, SSVC decision, KEV listing, or public POC was provided in the input, so exploitation likelihood cannot be quantified from these sources - absence of KEV/POC data is missing telemetry, not evidence of low risk. Net: treat as a priority patch for any site that grants non-admin Groundhogg roles to untrusted users, while recognizing that sites restricting Sales Representative access to trusted staff face lower realistic risk. |
| Exploit ScenarioDerived | An attacker holding a Sales Representative account (e.g., an outsourced marketing contractor or a compromised low-tier staff login) sends a crafted POST to the v3 contacts REST endpoint containing a user_id field pointing at an Administrator account, rebinding a contact record to that admin. They then call the v4 email-test endpoint to mint an {auto_login_url} one-time key bound to the rebound contact and browse to it, which invokes wp_set_auth_cookie() and grants a fully authenticated Administrator session. No public exploit was identified in the provided data, but the chain is fully documented and uses only two REST calls. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 03, 2026
Privilege escalation in the Groundhogg - CRM, Newsletters, and Marketing Automation plugin for WordPress versions up to and including 4.9 allows an authenticated Sales Representative-level user who holds both the add_contacts and send_emails capabilities to rebind a contact record to an Administrator's WordPress user ID, then use the v4 email-test endpoint to mint an {auto_login_url} key and obtain a fully authenticated Administrator session. This is a genuine high-priority issue rather than a CVSS-inflated one, but the practical risk is contingent on a site having delegated those non-administrator Groundhogg roles to the attacker; no public exploit identified at time of analysis, and the vendor has released a fix in version 4.9.1.
RemediationAI
Upgrade to Groundhogg 4.9.1 or later via the WordPress plugin updater or the vendor changeset at https://plugins.trac.wordpress.org/changeset?reponame=&new=3724910%40groundhogg%2Ftags%2F4.9.1&old=3724058%40groundhogg%2Ftags%2F4.9; this is the primary fix. If immediate patching is not possible, remove the add_contacts and send_emails capabilities from all non-administrator roles (especially Sales Representative) so untrusted users cannot reach POST /gh/v3/contacts or POST /gh/v4/emails/test, but note this will break legitimate contact creation and email-testing workflows for those roles. Alternatively, use a WAF or application-level capability filter to block unauthorized access to those two REST routes, accepting the same operational impact on Groundhogg marketing automation. Also audit existing contact records for unexpected user_id values pointing to Administrator accounts, and review role assignments that delegate these Groundhogg capabilities. See the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/557306b7-7b66-465e-8d4d-ebae5b1577c9?source=cve for further details.
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 root cause is CWE-269 improper privilege management in Groundhogg's REST API and contact database layer. The v3 endpoint POST /gh/v3/contacts (api/v3/contacts-api.php) is gated only by the add_contacts capability and forwards the full request payload, including the security-bearing user_id database column, into the upsert path of Contacts_DB::add() (db/contacts.php). Unlike Contacts_DB::update(), add() does not enforce the ownership guard that prevents a contact row from being arbitrarily rebound to another WordPress user. An attacker with Sales Representative-level access can therefore upsert their own contact record so it points to an Administrator's user ID. The v4 endpoint POST /gh/v4/emails/test (api/v4/emails-api.php) is also reachable via the send_emails capability and can generate an {auto_login_url} one-time permissions key tied to the rebound contact; consuming that link ultimately calls wp_set_auth_cookie(), yielding an authenticated session as the Administrator. The affected product is captured by CPE cpe:2.3:a:trainingbusinesspros:groundhogg_-_crm,_newsletters,_and_marketing_automation:*:*:*:*:*:*:*:*.
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
Exploitable over the REST API (AV:N) via a deterministic two-request chain (AC:L) by a pre-existing Sales Representative account (PR:L, not PR:N), no user interaction, yielding full admin compromise (C/I/A:H).
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 via Contact Identity Rebinding in all versions up to, and including, 4.9 The vulnerability exists because the create_contact function in the v3 REST endpoint (POST /gh/v3/contacts) is gated solely by the add_contacts capability and forwards the full request payload - including the security-bearing user_id column - into the upsert path of Contacts_DB::add(), which bypasses the ownership guard that Contacts_DB::update() enforces, allowing an attacker to rebind any existing contact record to an arbitrary WordPress user ID. This makes it possible for authenticated attackers with Sales Representative-level access and above to upsert their own contact row to point to an Administrator's user ID, then invoke the v4 email-test endpoint (POST /gh/v4/emails/test) - also accessible to the Sales Representative role via the send_emails capability - to generate an {auto_login_url} one-time permissions key bound to the rebound contact, and consume that link to call wp_set_auth_cookie() and gain a fully authenticated session as the WordPress Administrator.
Executive ViewAI
Organizations using the Groundhogg CRM, Newsletters, and Marketing Automation plugin for WordPress (versions up to 4.9) face a high-severity privilege escalation vulnerability that could allow a delegated Sales Representative-level user to obtain full Administrator control of the site. This could lead to unauthorized access to sensitive customer data, website defacement, or further compromise of connected systems, making immediate remediation critical for affected organizations.
Apply vendor patch.
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-91893
GHSA-9c9v-5p57-4qfm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB