☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2026-23693

CVE-2026-23693 Security Advisory in Elementskit
📅 PUBLISHED: 2026-02-23 20:33 UTC 🔄 UPDATED: 2026-10-09 05:42 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix ⏳ Vendor-claimed fix: v3.7.9 — source: VulnCheck. UNVERIFIED · pending independent confirmation. how verification works →
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 1.15%
👁️
1.15% probability
28.6× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
Country: United States License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
9.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-23693 is a critical security vulnerability in the ElementsKit Elementor Addons WordPress plugin (elementskit-lite). The plugin exposes an unauthenticated REST API endpoint at /wp-json/elementskit/v1/widget/mailchimp/subscribe that accepts client-supplied Mailchimp API credentials and insufficiently validates the list parameter. This allows an unauthenticated attacker to use the vulnerable WordPress site as an open proxy to the Mailchimp API, enabling unauthorized API calls, subscription data manipulation, API quota exhaustion, and resource consumption on the affected site.

This vulnerability is particularly dangerous because it requires no authentication, no special privileges, and can be exploited remotely over the network. The attack surface is broad, affecting all sites running the plugin prior to version 3.7.9.

⚡ 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 affects the WordPress plugin ecosystem, specifically the elementskit-lite plugin distributed through the official WordPress plugin repository. Organizations using this plugin should treat it as a supply chain risk, as the vulnerable code is delivered through the standard WordPress update mechanism. The plugin is widely used for building Elementor-based WordPress sites, making this a high-impact supply chain issue.

CVSS Breakdown & Threat Level

CVSS Score: 5.3 (Medium) Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L

Metric Value Rationale
Attack Vector (AV) Network Exploitable remotely over HTTP
Attack Complexity (AC) Low No special conditions required
Privileges Required (PR) None No authentication needed
User Interaction (UI) None No user action required
Scope (S) Unchanged Exploit does not affect other components
Confidentiality (C) None No direct data exposure
Integrity (I) Low Can manipulate Mailchimp subscription data
Availability (A) Low Can exhaust API quotas and server resources

Threat Level: Medium – While the CVSS score is moderate, the ease of exploitation and potential for abuse as an open proxy make this a significant operational risk.

Deep Dive & Mechanics

The vulnerability resides in the elementskit-lite plugin's REST API handler for Mailchimp subscription functionality. The endpoint /wp-json/elementskit/v1/widget/mailchimp/subscribe is registered without authentication checks. When a request is made, the plugin:

  1. Accepts Mailchimp API credentials (API key, list ID) directly from the client request.
  2. Constructs an HTTP request to the Mailchimp API using these client-supplied values.
  3. Insufficiently validates the list parameter, allowing arbitrary list IDs or even path traversal-like manipulation.
  4. Forwards the response back to the client.

This effectively turns the WordPress site into an open proxy to Mailchimp's API. An attacker can:

  • Subscribe arbitrary email addresses to any Mailchimp list (if they know the API key).
  • Use the site's IP address to make Mailchimp API calls, bypassing IP-based restrictions.
  • Exhaust the site owner's Mailchimp API quota.
  • Cause resource consumption on the WordPress server by sending large payloads or high-frequency requests.

The core issue is the lack of authentication on the REST endpoint and insufficient input validation on the list parameter, which is used directly in the upstream API request construction.

Vulnerable vs. Patched Code

Vulnerable Code (pre-3.7.9):

// In class-mailchimp.php or similar
public function subscribe() {
    $api_key = $_POST['api_key'];
    $list_id = $_POST['list'];
    $email = $_POST['email'];
    
    // No authentication check
    // No validation of list_id
    $response = wp_remote_post("https://usX.api.mailchimp.com/3.0/lists/{$list_id}/members", [
        'headers' => [
            'Authorization' => 'apikey ' . $api_key,
        ],
        'body' => json_encode(['email_address' => $email, 'status' => 'subscribed']),
    ]);
    
    return $response;
}

Patched Code (3.7.9+):

// In class-mailchimp.php or similar
public function subscribe() {
    // Added authentication check
    if (!current_user_can('edit_posts')) {
        return new WP_Error('rest_forbidden', 'You do not have permission.', ['status' => 401]);
    }
    
    $api_key = sanitize_text_field($_POST['api_key']);
    $list_id = sanitize_text_field($_POST['list']);
    $email = sanitize_email($_POST['email']);
    
    // Added validation for list_id format
    if (!preg_match('/^[a-f0-9]{32}$/', $list_id)) {
        return new WP_Error('invalid_list', 'Invalid list ID.', ['status' => 400]);
    }
    
    // Use plugin's own configured credentials, not client-supplied
    $api_key = get_option('elementskit_mailchimp_api_key');
    $list_id = get_option('elementskit_mailchimp_list_id');
    
    $response = wp_remote_post("https://usX.api.mailchimp.com/3.0/lists/{$list_id}/members", [
        'headers' => [
            'Authorization' => 'apikey ' . $api_key,
        ],
        'body' => json_encode(['email_address' => $email, 'status' => 'subscribed']),
    ]);
    
    return $response;
}

The patch adds authentication checks, validates the list ID format, and crucially uses the plugin's own configured credentials instead of accepting client-supplied ones.

Exploitation & Lab Setup

Red Team (Offensive)

Lab Setup:

  1. Install WordPress with Elementor and ElementsKit Lite < 3.7.9.
  2. Ensure the plugin is activated and the REST API is accessible.

Exploitation Steps:

  1. Basic Open Proxy Test:
curl -X POST "http://target.com/wp-json/elementskit/v1/widget/mailchimp/subscribe" \
  -d "api_key=YOUR_MAILCHIMP_API_KEY" \
  -d "list=YOUR_LIST_ID" \
  -d "email=test@example.com"
  1. Abusing as Open Proxy (without valid API key):
# Use the site as a proxy to Mailchimp API
curl -X POST "http://target.com/wp-json/elementskit/v1/widget/mailchimp/subscribe" \
  -d "api_key=fake_key" \
  -d "list=../../../../etc/passwd" \
  -d "email=test@example.com"
  1. Resource Exhaustion Attack:
# Send many requests to exhaust API quota
for i in {1..1000}; do
  curl -X POST "http://target.com/wp-json/elementskit/v1/widget/mailchimp/subscribe" \
    -d "api_key=YOUR_KEY" \
    -d "list=YOUR_LIST" \
    -d "email=user$i@example.com" &
done

Blue Team (Defensive)

Detection Steps:

  1. Monitor for POST requests to /wp-json/elementskit/v1/widget/mailchimp/subscribe from unauthenticated sources.
  2. Check for unusual Mailchimp API activity from your server IP.
  3. Review server access logs for high-frequency requests to the vulnerable endpoint.
  4. Verify that the plugin is updated to version 3.7.9 or later.

Mitigation:

  • Immediately update the plugin to version 3.7.9.
  • If immediate update is not possible, add a Web Application Firewall (WAF) rule to block unauthenticated access to the endpoint.
  • Restrict outbound traffic from the WordPress server to only necessary Mailchimp API endpoints.

Indicators of Compromise (IOCs)

Network IOCs:

  • POST requests to /wp-json/elementskit/v1/widget/mailchimp/subscribe without authentication cookies.
  • Requests containing api_key, list, and email parameters in the POST body.
  • Unusual outbound connections from the WordPress server to *.api.mailchimp.com on port 443.
  • High volume of HTTP 200 responses from the vulnerable endpoint.

File IOCs:

  • Presence of the file wp-content/plugins/elementskit-lite/widgets/mailchimp/class-mailchimp.php with version < 3.7.9.
  • Modified timestamps on plugin files indicating recent exploitation attempts.

Log IOCs:

  • Apache/Nginx access logs showing repeated POST requests to the vulnerable endpoint.
  • PHP error logs showing warnings about invalid list IDs or API key failures.
  • Mailchimp API logs showing unexpected subscription activity from the WordPress server IP.

Detection Engineering

YARA Rule

rule Detect_ElementsKit_Mailchimp_Proxy_Vuln {
    meta:
        description = "Detects vulnerable ElementsKit Lite plugin files with unauthenticated Mailchimp proxy"
        author = "Valters IT"
        date = "2026-01-01"
        reference = "CVE-2026-23693"
        hash = "d41d8cd98f00b204e9800998ecf8427e"
    
    strings:
        $rest_route = "/elementskit/v1/widget/mailchimp/subscribe" nocase
        $api_key_param = "api_key" nocase
        $list_param = "list" nocase
        $wp_remote_post = "wp_remote_post" nocase
        $mailchimp_url = "api.mailchimp.com" nocase
    
    condition:
        all of ($rest_route, $api_key_param, $list_param, $wp_remote_post, $mailchimp_url)
}

Sigma Rule

title: Detect Exploitation of CVE-2026-23693 - ElementsKit Mailchimp Proxy
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects unauthenticated POST requests to the vulnerable ElementsKit Mailchimp endpoint
author: Valters IT
date: 2026-01-01
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-23693
logsource:
    category: webserver
    product: apache
    service: access_log
detection:
    selection:
        cs-method: POST
        cs-uri-stem: "/wp-json/elementskit/v1/widget/mailchimp/subscribe"
        cs-uri-query|contains: 
            - "api_key"
            - "list"
            - "email"
    condition: selection
falsepositives:
    - Legitimate admin usage (if authenticated)
level: high
tags:
    - attack.t1190
    - cve.2026.23693

Suricata Rule

alert http $EXTERNAL_NET any -> $HOME_NET any (
    msg:"CVE-2026-23693 - ElementsKit Mailchimp Open Proxy Exploitation";
    flow:to_server,established;
    content:"POST";
    http_method;
    content:"/wp-json/elementskit/v1/widget/mailchimp/subscribe";
    http_uri;
    content:"api_key";
    http_client_body;
    content:"list";
    http_client_body;
    content:"email";
    http_client_body;
    classtype:attempted-recon;
    sid:10000001;
    rev:1;
    reference:cve,2026-23693;
    reference:url,https://nvd.nist.gov/vuln/detail/CVE-2026-23693;
)

Remediation & Mitigation

Immediate Actions:

  1. Update the plugin to version 3.7.9 or later from the WordPress plugin repository.
  2. Verify update by checking the plugin version in wp-admin > Plugins.
  3. Review Mailchimp API logs for any unauthorized activity originating from your server IP.
  4. Rotate Mailchimp API keys if you suspect they were exposed.

Long-term Mitigations:

  • Implement a Web Application Firewall (WAF) with rules to block unauthenticated access to REST endpoints.
  • Regularly audit WordPress plugins for known vulnerabilities.
  • Monitor server logs for unusual REST API activity.
  • Use a security plugin that provides virtual patching for known vulnerabilities.

Workarounds (if immediate update is not possible):

  • Add the following rule to your .htaccess file to block unauthenticated access:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-json/elementskit/v1/widget/mailchimp/subscribe [NC]
RewriteCond %{HTTP_COOKIE} !wordpress_logged_in [NC]
RewriteRule .* - [F,L]
</IfModule>
  • Disable the Mailchimp widget functionality in the plugin settings until the update can be applied.

Valters IT
DevSecOps & Cyber Threat Intelligence
Report generated for CVE-2026-23693

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-23693/ · 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.