Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Sales Representative (import_contacts)
-
DeliverySubmit import/REST/webhook with crafted file path
-
Exploitcopy_file accepts server path and deletes original
-
ExecutionDelete wp-config.php
-
PersistForce WordPress into installer/takeover state
-
ImpactAchieve 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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 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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
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).
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
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
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.
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
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
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.
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
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
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
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
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
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
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-102655
GHSA-xq4h-vhg9-4x8m
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB