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

2026-10-02 14:47
Supakiad S. (m3ez)

Strategic Overview

Status
Patched in 4.9.1
Affected Version
<= 4.9
CVSS
8.8High
Weakness type
CWE-269 · Improper Privilege Management
CVE
CVE-2026-97644
View all Groundhogg — CRM, Newsletters, and Marketing Automation vulnerabilities

At a glance

CVE-2026-97644 is a high-severity Improper Privilege Management vulnerability in the Groundhogg WordPress plugin, affecting versions <= 4.9. It carries a CVSS score of 8.8 (reachable over the network; low attack complexity; high confidentiality, integrity, availability impact). Exploitation requires an authenticated account at Sales Person level or above. The issue is fixed in version 4.9.1; sites on affected versions should update now. Disclosed October 2026, reported by Supakiad S. (m3ez).

Vulnerability Overview

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.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user. A successful exploit has high impact on confidentiality, integrity, availability — full site compromise territory.

CWE-269: Improper Privilege Management

Groundhogg <= 4.9 carries this weakness at update(), and reaching it takes an account at Sales Person level or above. Improper privilege management means the code lets an account end up with capabilities its role should not have.

It converts a low-privileged account into an administrative one, which makes every other restriction on the site irrelevant. For Groundhogg the fix is 4.9.1: builds <= 4.9 are affected, anything from 4.9.1 onward is not.

Remediation

Update to version 4.9.1, or a newer patched version

How does WordSec protect against this?

Because it turns on account access, WordSec's login security is the relevant layer: role-based two-factor, captcha and brute-force limits raise the cost of getting the account this needs. None of that substitutes for the fix: Groundhogg 4.9.1 closes this, and updating the plugin is the step that ends it.

  • Login Security
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C