CVE-2026-97644
Groundhogg <= 4.9 - Authenticated (Sales Person+) Privilege Escalation via Contact Identity Rebinding leading to Administrator Account Takeover to 'user_id' Parameter (v3 /contacts) chained with v4 /emails/test
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.8
Groundhogg <= 4.9 - Authenticated (Sales Person+) Privilege Escalation via Contact Identity Rebinding leading to Administrator Account Takeover to 'user_id' Parameter (v3 /contacts) chained with v4 /emails/test
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.
- Record
CVE-2026-97644- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-269
- Updated
- 2026-11-02
EUVDEUVD-2026-91893
8.8
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.
- Record
EUVD-2026-91893- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-9c9v-5p57-4qfm
8.8
The Groundhogg — CRM, Newsletters, and Marketing Automation plugin for WordPress is vulnerable to...
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.
- Record
GHSA-9c9v-5p57-4qfm- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-269
- Updated
- 2026-11-02
NVD
8.8
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.
- Record
CVE-2026-97644- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-269
- Updated
- 2026-11-02
Affected products
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-97644 is a high vulnerability (CVSS 8.8) in Trainingbusinesspros Groundhogg — Crm, Newsletters, And Marketing Automation, published October 3, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.48%, the 41st percentile. No source names a fixed version.
References
wordfence.com/threat-intel/vulnerabilities/id/557306b7-7b66-465e-8d4d-ebae5b1577c9?source=cve
plugins.trac.wordpress.org/browser/groundhogg/tags/4.8.3/api/v3/contacts-api.php
plugins.trac.wordpress.org/browser/groundhogg/tags/4.8.3/db/contacts.php
plugins.trac.wordpress.org/browser/groundhogg/tags/4.8.3/api/v4/emails-api.php
plugins.trac.wordpress.org/browser/groundhogg/tags/4.8.3/includes/replacements.php
plugins.trac.wordpress.org/browser/groundhogg/tags/4.8.3/includes/rewrites.php
Show 5 moreShow less
plugins.trac.wordpress.org/browser/groundhogg/tags/4.8.3/includes/main-roles.php
plugins.trac.wordpress.org/changeset?reponame=&new=3724910%40groundhogg%2Ftags%2F4.9.1&old=3724058%40groundhogg%2Ftags%2F4.9
plugins.trac.wordpress.org/changeset/3724910/groundhogg/trunk/api/v3/contacts-api.php
nvd.nist.gov/vuln/detail/CVE-2026-97644
github.com/advisories/GHSA-9c9v-5p57-4qfm