CVE-2024-37102
Executive Summary
CVE-2024-37102 is a Cross-Site Request Forgery (CSRF) vulnerability identified in the Blossomthemes Vilva WordPress theme, affecting versions up to and including 1.2.2. This vulnerability allows an attacker to perform unauthorized actions on behalf of an authenticated administrator, such as modifying theme settings or injecting malicious content, by tricking the victim into clicking a crafted link or visiting a malicious page. The CVSS score is 4.3 (Medium), with a low EPSS score of 0.0%, indicating limited active exploitation in the wild. No public proof-of-concept (PoC) or exploit code is currently available, and the patch status remains unknown.
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 a WordPress theme distributed via the official WordPress theme repository and third-party marketplaces. Since it is a theme, it is not managed via NPM, PyPI, Go, or Ruby packages. However, administrators should verify the integrity of the theme files by checking checksums or using WordPress’s built-in update mechanism. The lack of a patch from the vendor increases supply chain risk, as unpatched installations remain vulnerable.
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) – The attack is executed remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – The attacker does not need authentication.
- User Interaction: Required (UI:R) – The victim must click a link or visit a page.
- Scope: Unchanged (S:U) – The vulnerability does not affect other components.
- Confidentiality Impact: None (C:N) – No data exposure.
- Integrity Impact: Low (I:L) – Unauthorized modifications possible.
- Availability Impact: None (A:N) – No service disruption.
Threat Level: Medium. The requirement for user interaction reduces the immediate risk, but the potential for theme setting manipulation or content injection could lead to further compromise.
Deep Dive & Mechanics
The vulnerability resides in the Blossomthemes Vilva WordPress theme, specifically in its handling of administrative actions. CSRF occurs when the theme fails to implement proper nonce validation or other anti-CSRF tokens in its admin-facing forms and AJAX endpoints. An attacker can craft a malicious HTML page or email that, when accessed by an authenticated administrator, triggers a state-changing request (e.g., updating theme options, importing/exporting settings, or modifying user roles) without the administrator’s consent.
The affected component is likely the theme’s customizer or settings panel, which may use wp_ajax_ hooks without verifying a nonce. Since WordPress core provides built-in CSRF protection via nonces, the absence of such checks in the theme’s code is the root cause.
Vulnerable vs. Patched Code
Since no official patch is available, the following is a hypothetical comparison based on common CSRF fixes.
Vulnerable Code (Example):
// In theme's admin-ajax.php or functions.php
add_action('wp_ajax_vilva_save_settings', 'vilva_save_settings');
function vilva_save_settings() {
// No nonce check
update_option('vilva_theme_options', $_POST['options']);
wp_die();
}
Patched Code (Example):
add_action('wp_ajax_vilva_save_settings', 'vilva_save_settings');
function vilva_save_settings() {
// Add nonce verification
if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'vilva_save_settings_nonce')) {
wp_die('CSRF validation failed.');
}
update_option('vilva_theme_options', $_POST['options']);
wp_die();
}
The patched version includes a call to wp_verify_nonce() to ensure the request originated from the legitimate admin interface.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A WordPress site running Vilva theme <= 1.2.2.
- An authenticated administrator session (victim).
- Attacker-controlled web server or email delivery.
Exploitation Steps:
- Identify a vulnerable endpoint (e.g.,
/wp-admin/admin-ajax.php?action=vilva_save_settings). - Craft a malicious HTML page that auto-submits a form to the vulnerable endpoint with desired payload (e.g., changing theme colors or injecting JavaScript).
- Host the page on an attacker-controlled server or embed in an email.
- Send the link to the victim administrator (e.g., via phishing email).
- When the victim visits the page while logged into WordPress, the request is executed.
Example Malicious HTML:
<html>
<body>
<form action="http://target-site.com/wp-admin/admin-ajax.php" method="POST">
<input type="hidden" name="action" value="vilva_save_settings">
<input type="hidden" name="options[theme_color]" value="red">
<input type="submit" value="Click here">
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
Blue Team
Detection:
- Monitor for unexpected POST requests to
/wp-admin/admin-ajax.phpwithactionparameters matching theme-specific hooks (e.g.,vilva_*). - Check for missing
_wpnonceparameters in AJAX requests. - Review server logs for unusual referer headers or user agents.
Prevention:
- Ensure all admin AJAX actions include nonce verification.
- Implement additional CSRF tokens in theme forms.
- Use WordPress’s
check_admin_referer()function. - Educate administrators about phishing risks.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/wp-admin/admin-ajax.phpwithaction=vilva_*and no_wpnonceparameter. - File: Modified theme options in the
wp_optionstable (e.g.,vilva_theme_options). - Log: Server logs showing requests from suspicious referers (e.g., attacker-controlled domains).
- Behavior: Unauthorized changes to theme settings without admin interaction.
Detection Engineering
YARA Rule
rule CVE_2024_37102_CSRF_Vilva {
meta:
description = "Detects CSRF exploitation attempts against Blossomthemes Vilva theme"
author = "Valters IT"
date = "2025-04-10"
cve = "CVE-2024-37102"
strings:
$ajax_action = "action=vilva_" nocase
$missing_nonce = "HTTP/1.1 200 OK" // Placeholder for response
condition:
$ajax_action and #missing_nonce > 0
}
Sigma Rule
title: CVE-2024-37102 - CSRF Exploitation Attempt Against Vilva Theme
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects HTTP POST requests to WordPress admin-ajax.php with Vilva theme actions lacking nonce
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-query|contains: "action=vilva_"
condition: selection
falsepositives:
- Legitimate admin actions if nonce is present (but rule doesn't check nonce)
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2024-37102 - CSRF Attempt Against Vilva Theme"; flow:to_server; content:"POST"; http_method; content:"/wp-admin/admin-ajax.php"; http_uri; content:"action=vilva_"; http_client_body; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the Vilva theme until a patch is available.
- Switch to an alternative theme with active support.
- Implement a Web Application Firewall (WAF) rule to block requests to
admin-ajax.phpwithaction=vilva_*unless a valid nonce is present.
Long-term Fix:
- Contact Blossomthemes for an official patch.
- If using a custom child theme, add nonce verification to all AJAX hooks.
- Regularly update all WordPress components.
User Education:
- Train administrators to avoid clicking suspicious links while logged into WordPress.
- Use browser extensions that detect CSRF attacks.
Valters IT
Securing Digital Frontiers
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.