Skip to main content

Groundhogg CVE-2026-109221

| EUVDEUVD-2026-102655 HIGH
Path Traversal (CWE-22)
2026-10-16 Wordfence GHSA-xq4h-vhg9-4x8m
8.1
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as Sales Representative (import_contacts)
  2. Delivery
    Submit import/REST/webhook with crafted file path
  3. Exploit
    copy_file accepts server path and deletes original
  4. Execution
    Delete wp-config.php
  5. Persist
    Force WordPress into installer/takeover state
  6. Impact
    Achieve remote code execution

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK

2 techniques across 2 tactics: Discovery, Collection

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 user holding the plugin-defined import_contacts capability - granted by default to Groundhogg's custom Sales Representative role - so any Sales Representative or higher qualifies. The flaw is reachable through the contact-import (CSV), REST API, and webhook code paths that call copy_file, where a request-supplied value is wrongly accepted as naming an existing local file. Exploitation requires Groundhogg 4.9.3 or earlier to be installed and active, and the attacker must know or guess the absolute path of a sensitive target file (e.g. wp-config.php) for maximum impact. The limiting factors are the privilege requirement (not anonymous) and the need for that capability to be assigned; there is no user-interaction or non-default-configuration requirement since the Sales Representative role grants the capability by default.

Impact

This is a credible, actionable priority rather than an inflated high-CVSS issue, but it is bounded by an authentication requirement. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H, 8.1 High) is internally consistent and well-supported by the description: network-reachable, low-complexity, no user interaction, with high integrity and availability impact from arbitrary file deletion and no confidentiality impact (deletion discloses nothing). The one signal to weigh carefully is PR:L - exploitation is not open to anonymous internet users; it requires a user holding the plugin-defined import_contacts capability, which is granted by default to Groundhogg's custom Sales Representative role. That makes the realistic threat model a lower-privileged insider, a compromised sales/marketing account, or a mass-assignment/privilege scenario, rather than fully unauthenticated mass exploitation. The impact ceiling is severe: deleting wp-config.php can push WordPress into setup/installer mode and is a well-understood path to full remote code execution and site takeover. No EPSS score, KEV listing, or public POC is present in the supplied data, so exploitation status is 'no public exploit identified at time of analysis' - the urgency here is driven by impact severity and the clarity of the vendor-confirmed root cause, not by observed in-the-wild activity. No key signals conflict with the description; the main caveat is simply the absence of exploitation-probability telemetry (EPSS) to gauge likelihood.

Exploit ScenarioDerived

An attacker who controls a Sales Representative account (or any account granted the import_contacts capability) submits a contact import, REST API call, or webhook whose file field names an absolute server path such as the WordPress wp-config.php. The vulnerable copy_file logic treats the request-supplied value as an existing local file; the subsequent sideload rejection or move then deletes the original, destroying the targeted file. Deleting wp-config.php forces WordPress into an uninitialized/installer state that can be leveraged toward remote code execution and full site takeover; no public exploit code is identified in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.8% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 16, 2026

Arbitrary file deletion in the Groundhogg CRM, Newsletters and Marketing Automation plugin for WordPress (all versions up to and including 4.9.3) lets an authenticated user who holds the plugin's import_contacts capability - granted by default to Groundhogg's custom Sales Representative role - name an arbitrary server-side path and have the plugin delete it, with a realistic escalation to remote code execution (for example by removing wp-config.php). The flaw is reachable through the contact-import (CSV), REST API, and webhook paths that call copy_file, and it received a CVSS of 8.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H); there is no CISA KEV listing and no public exploit code identified at time of analysis. The practical risk is bounded by the authentication requirement and by the attacker's need to know or guess the absolute path of a valuable target, but the capability is assigned by default and no user interaction or non-default configuration is needed, making this a credible, actionable priority rather than an inflated high-CVSS issue.

RemediationAI

Apply the upstream fix: the hardening is present in Groundhogg commit e319e4a849bfbb07cccfbac8558ad6bf07a7fdc0 and the associated Trac changeset 3744461, but given the advisory covers everything up to and including 4.9.3, confirm availability of a released patched plugin version from the vendor and upgrade to the first release at or above 4.9.3 that contains that changeset - upstream fix available (PR/commit); released patched version not independently confirmed, so verify the installed plugin version after updating (the commit also updates README.txt with the security note crediting Supakiad S. (m3ez) of E-CQURITY via Wordfence). If an immediate update is not possible, the highest-value compensating control is to remove the plugin-defined import_contacts capability from the Sales Representative role and from every other role that does not strictly require bulk contact import (e.g. with a role-editor plugin or a small capability-stripping filter); the trade-off is that Sales Representatives lose CSV/webhook-driven contact file imports until patched, which may break marketing workflows. Additionally, restrict Groundhogg's REST routes and webhook endpoints that reach generate_contact_with_map()/copy_file so they can only be called by trusted administrator accounts, and treat absolute file paths in imported CSV columns as untrusted input by sanitizing or stripping any non-URL values before import - both reduce exposure but do not remove the underlying path-traversal logic. Because the exploit is authenticated, tightening role assignments and enforcing least privilege on the Sales Representative role substantially reduces the attack surface; there is no configuration setting that disables the vulnerable copy path itself. Monitor for unexpected deletion of sensitive files such as wp-config.php and keep off-server backups of WordPress core, plugin, and configuration files so that a destructive deletion can be recovered. The vendor's Trac references for the affected 4.9.3 code (includes/classes/traits/file-box.php, includes/functions.php, includes/utils/files.php, includes/background/import-contacts.php, admin/tools/tools-page.php, includes/main-roles.php) are useful for verifying whether a given build still contains the unvalidated path handling.

Affected VersionsENISA

Groundhogg — CRM, Newsletters, and Marketing Automation 0 ≤4.9.3

Affected Packages

euvd groundhogg_crm_newsletters_and_marketing_automation no fix

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 vulnerability is a path-traversal class issue (CWE-22) rooted in insufficient validation of a file path passed into the copy_file function implemented in Groundhogg's File_Box trait (includes/classes/traits/file-box.php). In the vulnerable code, generate_contact_with_map() fed request-supplied values (from CSV imports, REST requests, and webhooks) into is_copyable_file(), whose check boiled down to file_exists(). Any string that resolved to an existing path on the server was therefore treated as a legitimate source file; downstream, safe_file_sideload() refused files outside the WordPress uploads directory, but the error-cleanup path then called wp_delete_file() on the attacker-named original, deleting it - and for files inside the uploads directory the original was moved instead of copied. The upstream fix introduces is_copyable_url(), which rejects anything that is not an http/https URL whose hostname matches the site, removes the local-path branch from generate_contact_with_map(), and rewrites copy_file() so that a local source is only accepted when it lies within wp_get_upload_dir()['basedir'] and is copied to a temporary file before any upload/delete occurs (so the original is never touched). The affected distribution is the WordPress plugin published under the trainingbusinesspros vendor CPE (cpe:2.3:a:trainingbusinesspros:groundhogg_-_crm,_newsletters,_and_marketing_automation), running on PHP-based WordPress installations where the custom Sales Representative role and the plugin-defined import_contacts capability are present by default.

Know when PHP 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

Vendor (Wordfence) PRIMARY 8.1 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
vuln.today AI 8.1 HIGH

Network-reachable import/REST/webhook paths (AV:N, AC:L) require the import_contacts capability (PR:L); arbitrary deletion yields high integrity and availability impact but no disclosure (C:N).

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

DescriptionCVE.org

The Groundhogg - CRM, Newsletters, and Marketing Automation plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the copy_file function in all versions up to, and including, 4.9.3 This makes it possible for authenticated attackers, with Sales Representative-level access and above, to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). This is exploitable by any user holding the plugin-defined import_contacts capability, which is granted by default to the plugin's custom Sales Representative role.

Executive ViewAI

Why It Matters

Groundhogg CRM, Newsletters and Marketing Automation for WordPress, up to and including version 4.9.3, presents a high-severity risk because an authenticated user with the plugin's default Sales Representative import capability can delete arbitrary server files and potentially escalate to site compromise. With no vendor-released patch identified at time of analysis and no public exploit identified at time of analysis, affected organizations should treat every WordPress instance running this plugin as requiring immediate compensating controls rather than waiting for a fix. Leadership should care because these sites often support customer-facing marketing, CRM records, and revenue operations, and an exploit could cause data loss, downtime, or full site takeover with minimal attacker effort once an authorized account is obtained.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: deactivate or remove Groundhogg CRM, Newsletters and Marketing Automation up to and including 4.9.3 where possible; if it must remain, remove the import_contacts capability from the Sales Representative role and all other roles, restrict contact-import/CSV, REST API, and webhook access to trusted administrators, deploy WAF/virtual patching to block arbitrary path manipulation, enable file integrity monitoring and alerting for wp-config.php and other critical files, maintain immutable offline backups, and review logs for unauthorized file deletion or privilege escalation.

Threat Intelligence Overview

EPSS Score
0.8%
Top 45% exploitable
Prevalence
Medium
popular WordPress CRM/marketing plugin, common but not on every site
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.8%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +40
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy