CVE-2024-37235
Executive Summary
CVE-2024-37235 is a Cross-Site Request Forgery (CSRF) vulnerability in the Groundhogg WordPress plugin, affecting versions from n/a through 3.4.2.3. This flaw allows an attacker to trick an authenticated administrator into performing unintended actions, such as modifying plugin settings or creating unauthorized user accounts, without their consent. The vulnerability is classified as a WordPress ecosystem issue, as Groundhogg is a WordPress plugin. The CVSS score is 4.3 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood in the wild. No public proof-of-concept (PoC) or exploit code is available, and no patch has been released by the vendor.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability affects the Groundhogg WordPress plugin, which is distributed via the official WordPress plugin repository. As a WordPress plugin, it is part of the broader WordPress ecosystem and is not associated with NPM, PyPI, Go, or Ruby package managers. The risk to the supply chain is limited to WordPress sites that have this plugin installed. Administrators should monitor the plugin’s update channel for a patched version.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Base Score: 4.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R)
- Scope: Unchanged (S:U)
- Confidentiality Impact: None (C:N)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
Threat Level: Medium. The vulnerability requires user interaction (a logged-in admin clicking a malicious link) and only allows low-integrity impact (e.g., changing settings). However, in a WordPress context, CSRF can lead to privilege escalation or site takeover if combined with other flaws.
Deep Dive & Mechanics
The vulnerability is a classic CSRF in the Groundhogg plugin. The plugin fails to implement proper nonce validation or CSRF tokens on certain administrative actions. An attacker can craft a malicious HTML page or email that, when visited by an authenticated administrator, triggers a forged request to the Groundhogg plugin’s admin endpoints. This can result in unauthorized changes to plugin settings, user roles, or other configuration options.
Attack Flow:
- Attacker identifies a Groundhogg admin action that lacks CSRF protection (e.g., updating a setting via a GET or POST request).
- Attacker crafts a malicious link or form that submits a request to that endpoint with attacker-controlled parameters.
- Attacker lures an authenticated admin to click the link or visit the page (e.g., via phishing email or social engineering).
- The admin’s browser sends the forged request, including their session cookies, to the WordPress site.
- The Groundhogg plugin processes the request, performing the unintended action.
Root Cause: Missing or improper CSRF nonce validation in the plugin’s admin AJAX or form handlers.
Vulnerable vs. Patched Code
Since no patch is available, we can only describe the vulnerable code pattern. A typical vulnerable code snippet in WordPress plugins might look like:
// Vulnerable: No nonce check
add_action('wp_ajax_groundhogg_update_setting', 'groundhogg_update_setting');
function groundhogg_update_setting() {
update_option('groundhogg_setting', $_POST['setting_value']);
wp_die();
}
A patched version would include a nonce check:
// Patched: Nonce verification added
add_action('wp_ajax_groundhogg_update_setting', 'groundhogg_update_setting');
function groundhogg_update_setting() {
if (!wp_verify_nonce($_POST['_wpnonce'], 'groundhogg_update_setting')) {
wp_die('CSRF detected');
}
update_option('groundhogg_setting', $_POST['setting_value']);
wp_die();
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Install WordPress (latest version) on a local or cloud server.
- Install Groundhogg plugin version 3.4.2.3.
- Create an admin user account.
Exploitation Steps:
- Identify a vulnerable endpoint (e.g.,
/wp-admin/admin-ajax.php?action=groundhogg_update_setting). - Craft a malicious HTML page that auto-submits a form to that endpoint:
<html>
<body>
<form action="http://target-site.com/wp-admin/admin-ajax.php" method="POST">
<input type="hidden" name="action" value="groundhogg_update_setting">
<input type="hidden" name="setting_value" value="malicious_value">
<input type="submit" value="Click me">
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
- Host the HTML page on an attacker-controlled server.
- Send the link to the admin via email or social engineering.
- Once the admin visits the page, the CSRF attack executes.
Blue Team
Detection:
- Monitor for unusual POST requests to
/wp-admin/admin-ajax.phpwithactionparameters related to Groundhogg. - Look for referrer headers that are not from the same site.
- Alert on multiple failed nonce checks in WordPress logs.
Prevention:
- Ensure all admin actions use WordPress nonces.
- Implement additional CSRF protections like SameSite cookies.
- Educate administrators about phishing risks.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/wp-admin/admin-ajax.phpwithaction=groundhogg_*parameters. - Referrer headers from external domains.
- POST requests to
- Host IOCs:
- Unexpected changes to Groundhogg plugin settings in the database (e.g.,
wp_optionstable). - New user accounts created with elevated privileges.
- Unexpected changes to Groundhogg plugin settings in the database (e.g.,
- Log IOCs:
- WordPress debug logs showing missing nonce errors.
- Web server logs with unusual POST requests to admin AJAX endpoints.
Detection Engineering
YARA Rule
rule CVE_2024_37235_CSRF_Groundhogg {
meta:
description = "Detects CSRF exploitation attempts against Groundhogg plugin"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-37235"
strings:
$ajax_action = "action=groundhogg_" nocase
$admin_ajax = "/wp-admin/admin-ajax.php" nocase
$post_method = "POST" nocase
condition:
$ajax_action and $admin_ajax and $post_method
}
Sigma Rule
title: CVE-2024-37235 Groundhogg CSRF Exploitation
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects CSRF attempts against Groundhogg plugin
author: Valters IT
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=groundhogg_'
condition: selection
falsepositives:
- Legitimate admin actions
level: medium
Suricata Rule
alert http $EXTERNAL_NET any -> $HOME_NET any (
msg:"CVE-2024-37235 Groundhogg CSRF Exploitation Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=groundhogg_"; http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable the Groundhogg plugin until a patch is released.
- Implement a Web Application Firewall (WAF) rule to block requests to
/wp-admin/admin-ajax.phpwithaction=groundhogg_*parameters from external referrers. - Educate administrators to avoid clicking suspicious links while logged into WordPress.
Long-term Fix:
- The vendor must release a patched version that adds CSRF nonce validation to all admin actions.
- Users should update to the latest version once available.
Workarounds:
- Use a security plugin like Wordfence to add CSRF protection.
- Restrict admin access to trusted IP addresses.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.