Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain contributor credentials
-
DeliveryCraft testimonials shortcode with XSS payload in unescaped attribute
-
ExploitSave post (payload bypasses wp_kses_post)
-
InstallVictim admin browses injected page
-
C2do_shortcode() renders unescaped field into DOM
-
ExecuteMalicious script executes in admin browser
-
ImpactSteal session token or escalate to full site control
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated WordPress session with at least contributor-level permissions - this is the primary gate and the main limiting factor against opportunistic mass exploitation. The Live Composer plugin must be installed, active, and running version 2.1.19 or earlier. The specific attack surface is the dslc_module_testimonials_output shortcode; the attacker must be able to create or edit a post or page that includes this shortcode and control the values of the main_heading_title, view_all_link, main_heading_link_title, or main_filter_title_all attributes. Payload detonation against a victim requires a second user to browse to the injected page - the stored nature of the XSS means no attacker presence is needed at execution time, but victim page-load interaction is required. Sites where contributor registration is closed or tightly provisioned are substantially protected by the PR:L prerequisite. |
| Impact | The CVSS 3.1 base score of 6.4 (Medium) with vector AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N reflects a network-reachable, low-complexity attack constrained by a contributor-level authentication prerequisite and producing a scope change - the injected payload executes in other users' browser sessions. The PR:L requirement is the primary real-world limiting factor: an attacker must hold or obtain a valid WordPress contributor account, which narrows opportunistic exploitation but remains realistic on multi-author blogs, news sites, and editorial platforms where contributor registration is open or loosely managed. No EPSS score was supplied, so exploitation probability cannot be quantified numerically; the absence of a CISA KEV listing indicates no confirmed widespread active exploitation. The scope change (S:C) combined with administrator visit potential means the practical blast radius exceeds what the nominal score suggests - a successful payload can steal admin session cookies or redirect privileged users, enabling full site takeover. This is a moderate-to-elevated priority for WordPress deployments with open contributor-level registration and a lower priority where contributor access is tightly controlled. |
| Exploit ScenarioDerived | An attacker registers or compromises a contributor account on a target WordPress site running Live Composer 2.1.19 or earlier, then creates or edits a page embedding the dslc_module_testimonials_output shortcode with a JavaScript payload in the main_heading_title or view_all_link attribute; the payload survives save-time sanitization because wp_kses_post does not inspect shortcode contents. When any user - including an administrator - subsequently visits the page, do_shortcode() renders the unescaped attribute into live HTML, executing the script in the visitor's browser and enabling session cookie theft or arbitrary DOM manipulation. No public proof-of-concept has been identified at time of analysis, but the attack is fully reproducible from the vulnerability description and referenced source lines alone. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 01, 2026
Stored cross-site scripting in the Live Composer Free WordPress Website Builder plugin (all versions up to and including 2.1.19) allows authenticated attackers with contributor-level access to embed persistent JavaScript payloads via the dslc_module_testimonials_output shortcode. The vulnerability exploits a two-phase rendering gap: WordPress's native wp_kses_post filter sanitizes content at save time but treats shortcode markup as opaque, so attacker-controlled values in fields such as main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all are never escaped - they reach the DOM unfiltered when do_shortcode() executes at page-view time. No public exploit code or CISA KEV listing has been identified at time of analysis; Wordfence confirmed the flaw through direct code-level review of the testimonials module.
RemediationAI
Upstream fix available (changeset 3662813 in the WordPress plugin repository); the exact patched release version number is not confirmed from available reference data - site administrators should update the Live Composer plugin to the latest available version immediately via the WordPress admin dashboard or WP-CLI and verify the installed version exceeds 2.1.19. As a compensating control pending patch verification, restrict or disable open contributor-level account registration to eliminate the primary credential-acquisition path for external attackers - note this may affect legitimate editorial workflows. Auditing existing contributor accounts for unauthorized or dormant access is advisable. A WAF rule targeting XSS patterns in shortcode attribute positions can reduce exploitation success but is not a substitute for patching. Monitor the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/852b1766-8674-44a0-843c-381cd4155a2b for confirmed patch version information.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CWE-79 (Improper Neutralization of Input During Web Page Generation) arises from a two-phase rendering pipeline in WordPress. Save-time sanitization via wp_kses_post does not evaluate shortcode attribute contents because the shortcode string is treated as an opaque token during filtering. The plugin's dslc_module_testimonials_output shortcode handler subsequently passes contributor-controlled attribute values - specifically main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all - into HTML output without escaping when do_shortcode() executes at page-view time. The affected product is identified by CPE cpe:2.3:a:livecomposer:live_composer_-_free_wordpress_website_builder:*:*:*:*:*:*:*:*, covering all versions through 2.1.19. Wordfence pinpointed the vulnerable rendering code at lines 5024, 5251, 5257, and 5291 in modules/testimonials/module.php within the 2.1.18 branch of the WordPress plugin repository, confirming that absent esc_attr() or esc_html() calls on shortcode-derived values are the direct root cause.
Know when Wordpress Plugin gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
Contributor-level auth required (PR:L); victim must actively visit the injected page (UI:R); payload executes in victim browser scope (S:C); no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Live Composer - Free WordPress Website Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via dslc_module_testimonials_output Shortcode in all versions up to, and including, 2.1.19 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The injected payload survives save-time wp_kses_post filtering because KSES treats shortcode delimiters as opaque, and the unescaped fields - including main_heading_title, view_all_link, main_heading_link_title, and main_filter_title_all - are only rendered when do_shortcode() executes at page-view time.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
More in Wordpress Plugin
View allThe Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
The Hash Form - Drag & Drop Form Builder plugin for WordPress is vulnerable to arbitrary file uploads due to missing fil
Authentication bypass in the LiteSpeed Cache WordPress plugin (versions prior to 6.5.0.1) allows unauthenticated remote
The Simple File List plugin for WordPress through version 4.2.2 contains an unauthenticated remote code execution vulner
The AI Engine WordPress plugin through version 3.1.3 exposes Bearer Token values through the /mcp/v1/ REST API endpoint
The SureTriggers WordPress plugin through version 1.0.82 contains a privilege escalation vulnerability that allows unaut
The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
The Business Directory Plugin - Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based
SQL injection in the NotificationX WordPress plugin (versions up to and including 2.8.2) allows unauthenticated remote a
The POST SMTP Mailer - Email log, Delivery Failure Notifications and Best Mail SMTP for WordPress plugin for WordPress i
The MasterStudy LMS WordPress Plugin - for Online Courses and Education plugin for WordPress is vulnerable to union base
The Email Subscribers by Icegram Express plugin for WordPress is vulnerable to SQL Injection via the ‘hash’ parameter in
EUVD-2026-68998
GHSA-vq42-9gx3-gj3v
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB