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

CVE-2025-46243 Cross-Site Request Forgery in Sktthemes
📅 PUBLISHED: 2025-04-22 10: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.18%
👁️
0.18% probability
4.5× above the median CVE
Tier: ELEVATED
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-46243 is a Cross-Site Request Forgery (CSRF) vulnerability in the Recover abandoned cart for WooCommerce WordPress plugin by Sktthemes (sonalsinha21). This flaw allows an attacker to forge requests on behalf of an authenticated administrator, potentially leading to unauthorized changes to plugin settings, cart recovery configurations, or other administrative actions. The vulnerability affects all versions up to and including 2.2. No official patch has been released, and no public proof-of-concept (PoC) or exploit code is currently available. The CVSS score is 4.3 (Medium), with a low EPSS probability of 0.0%, indicating limited active exploitation at this time.

⚡ 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 distributed via the official WordPress plugin repository. As a WordPress ecosystem component, it is not managed through NPM, PyPI, Go, or Ruby registries. However, the lack of a patch and the vendor's unknown status pose a supply chain risk for any WooCommerce site using this plugin. Administrators should consider removing or replacing the plugin until a fix is available.

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) – victim must click a crafted link or visit a malicious page
  • Scope: Unchanged (S:U)
  • Confidentiality Impact: None (C:N)
  • Integrity Impact: Low (I:L) – attacker can modify plugin settings or trigger actions
  • Availability Impact: None (A:N)

Threat Level: Medium. While the impact is limited to integrity, the low complexity and lack of authentication requirements make it a viable vector for phishing or social engineering campaigns targeting site administrators.

Deep Dive & Mechanics

The vulnerability stems from the plugin's failure to implement proper CSRF tokens or nonces in its administrative actions. In WordPress, CSRF protection is typically enforced via nonce verification in admin pages and AJAX handlers. The recover-wc-abandoned-cart plugin, in versions <= 2.2, does not validate these tokens, allowing an attacker to craft a malicious link or form that, when clicked by an authenticated admin, executes unintended actions.

Attack Flow:

  1. An attacker identifies a target WooCommerce site using the vulnerable plugin.
  2. The attacker crafts a malicious HTML page or email containing a forged request (e.g., changing plugin settings, deleting cart recovery data, or modifying email templates).
  3. The attacker lures an authenticated administrator to visit the malicious page or click the link.
  4. The victim's browser sends the forged request with their valid session cookies.
  5. The plugin processes the request without CSRF validation, executing the attacker's desired action.

Root Cause: Missing nonce verification in functions handling plugin settings, cart recovery actions, or AJAX endpoints.

Vulnerable vs. Patched Code

Since no patch is available, the following illustrates the vulnerable pattern and the expected fix.

Vulnerable Code (Example from plugin admin page):

function save_plugin_settings() {
    // No nonce check
    update_option('rac_settings', $_POST['settings']);
}
add_action('admin_post_save_rac_settings', 'save_plugin_settings');

Patched Code (Expected fix):

function save_plugin_settings() {
    if (!isset($_POST['_wpnonce']) || !wp_verify_nonce($_POST['_wpnonce'], 'rac_settings_nonce')) {
        wp_die('CSRF validation failed.');
    }
    update_option('rac_settings', $_POST['settings']);
}
add_action('admin_post_save_rac_settings', 'save_plugin_settings');

The patched version adds a nonce check using wp_verify_nonce() before processing the request.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Target WordPress site with the vulnerable plugin (<= 2.2)
  • Authenticated admin session (victim)

Exploitation Steps:

  1. Identify the vulnerable endpoint (e.g., wp-admin/admin-post.php?action=save_rac_settings).
  2. Craft a CSRF payload (e.g., an HTML form that auto-submits):
<html>
<body>
<form action="https://target-site.com/wp-admin/admin-post.php?action=save_rac_settings" method="POST">
    <input type="hidden" name="settings[enable_recovery]" value="0">
    <input type="hidden" name="settings[email_subject]" value="Hacked">
    <input type="submit" value="Click me">
</form>
<script>document.forms[0].submit();</script>
</body>
</html>
  1. Host the payload on an attacker-controlled server or send it via email.
  2. Lure an admin to visit the page. The form auto-submits, changing plugin settings.

Note: No public exploit code exists; this is a conceptual demonstration.

Blue Team

Detection & Prevention:

  • Monitor for unusual admin POST requests to admin-post.php with unexpected action parameters.
  • Implement Web Application Firewall (WAF) rules to block requests missing nonce tokens.
  • Educate administrators about phishing attacks targeting WordPress admin panels.
  • Use security plugins (e.g., Wordfence) that add CSRF protection layers.

Lab Setup:

  • Install WordPress with the vulnerable plugin in a sandbox environment.
  • Use a tool like Burp Suite to intercept and replay requests without nonces.
  • Verify that requests succeed without CSRF tokens.

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests to /wp-admin/admin-post.php with action parameters related to the plugin (e.g., save_rac_settings, delete_cart).
  • Logs: WordPress debug logs showing unexpected settings changes or missing nonce warnings.
  • File: Modified plugin options in the wp_options table (e.g., rac_settings).
  • Behavior: Sudden changes to cart recovery email templates, enable/disable toggles, or deletion of abandoned cart data.

Detection Engineering

YARA Rule

rule detect_cve_2025_46243_csrf {
    meta:
        description = "Detects missing nonce in Recover abandoned cart for WooCommerce plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-46243"
    strings:
        $func1 = "save_plugin_settings" nocase
        $func2 = "admin_post_" nocase
        $nonce_missing = "wp_verify_nonce" nocase
    condition:
        $func1 and $func2 and not $nonce_missing
}

Sigma Rule

title: CVE-2025-46243 CSRF Exploitation Attempt
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP POST requests to WordPress admin-post.php with missing nonce for the vulnerable plugin
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: POST
        cs-uri-query|contains: "admin-post.php?action="
        cs-uri-query|contains|wide: "save_rac_settings"
    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-2025-46243 CSRF Attempt on Recover Abandoned Cart"; flow:to_server,established; http.method; content:"POST"; http.uri; content:"/wp-admin/admin-post.php"; content:"action=save_rac_settings"; fast_pattern; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released. Remove it from all production sites.
  2. Replace with an alternative abandoned cart recovery plugin that is actively maintained and patched.
  3. Implement CSRF protection manually if the plugin must remain active (e.g., using a WordPress security plugin that adds nonce checks).

Long-term:

  • Monitor the vendor's repository for updates. If no patch appears within 30 days, consider forking or migrating.
  • Enforce strict Content Security Policy (CSP) headers to limit form submissions.
  • Use multi-factor authentication (MFA) for admin accounts to reduce the impact of CSRF.

Workaround: Add a custom function to the theme's functions.php to validate nonces for all plugin actions:

add_action('admin_init', function() {
    if (isset($_GET['action']) && strpos($_GET['action'], 'rac_') !== false) {
        if (!isset($_REQUEST['_wpnonce']) || !wp_verify_nonce($_REQUEST['_wpnonce'], 'rac_nonce')) {
            wp_die('CSRF detected.');
        }
    }
});

Valters IT
DevSecOps & Cyber Threat Intelligence

👁️ 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.html:"recover-wc-abandoned-cart"
http.html:"wp-content/plugins/recover-wc-abandoned-cart"

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