Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain Contributor WordPress credentials
-
DeliveryCraft base64-encoded XSS payload
-
ExploitEmbed payload in [vc_raw_html] shortcode in post
-
InstallSubmit post for editorial review
-
C2Privileged user (Editor/Admin) previews post
-
ExecuteScript executes in victim browser
-
ImpactSession cookie exfiltrated or admin action performed
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 user account with at minimum Contributor-level privileges - this is a hard prerequisite enforced by PR:L in the CVSS vector. The attacker must be able to create or edit a post or page that contains the [vc_raw_html] shortcode, meaning the tagDiv Composer plugin must be active and the shortcode must be available to the attacker's role. Exploitation of the stored payload against a privileged victim additionally requires that a higher-privilege user (Editor, Administrator) views, previews, or otherwise loads the injected page in their browser; this is the cross-site trigger, captured by S:C in the CVSS. Factors that limit real-world exploitability: sites where Contributor-level registration is closed or controlled reduce attacker access; sites where post review workflows do not expose pending posts to admins reduce victim exposure; and Content Security Policy headers that block inline script execution would mitigate JavaScript execution even if the payload is stored. |
| Impact | The CVSS 3.1 score of 6.4 (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) accurately reflects the main risk constraints: PR:L limits exploitation to authenticated Contributor-level or higher users, and C:L/I:L reflects the limited but real browser-scope impact of stored XSS. The S:C (Changed Scope) metric correctly captures that the primary victims are not the WordPress server but users' browsers. No KEV listing and no confirmed POC mean this is not confirmed as actively exploited. EPSS data was not provided in the intelligence feed, so exploitation probability cannot be quantified from that signal. The most realistic risk materialises in multi-author WordPress environments (news sites, magazines) where untrusted contributors can draft and submit posts for editorial review: an attacker can target privileged reviewers (Editors, Admins) whose browsers execute the payload on preview, potentially enabling session hijack or privilege escalation within WordPress. For single-author or tightly access-controlled sites, real-world risk is substantially lower than the base CVSS suggests. |
| Exploit ScenarioDerived | An attacker registers or compromises a WordPress Contributor account on a site using tagDiv Composer, then creates or edits a post with a shortcode such as [vc_raw_html]<base64-encoded-script-payload>[/vc_raw_html]. The base64 payload encodes a script tag that steals the visitor's session cookie or silently creates a rogue admin account via the WordPress REST API. When an Editor or Administrator previews or publishes the post, the script executes in their browser in the context of the WordPress site, granting the attacker effective admin-level control. No POC code has been identified in the available intelligence, but the base64-bypass technique is publicly documented in the WordPress security community. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Stored Cross-Site Scripting in the tagDiv Composer WordPress plugin (all versions through 5.4.5) allows authenticated attackers with Contributor-level access to persist arbitrary JavaScript in WordPress post content that executes in the browsers of any user who views the affected page. The exploit abuses a base64-encoding bypass in the vc_raw_html shortcode: WordPress's save-time wp_kses_post() sanitizer never sees the dangerous tags because they are encoded as innocuous base64 text, and the vc_raw_html::render() method decodes and emits the content unescaped at render time. No public exploit is identified at time of analysis, but the technique (base64-bypass of wp_kses_post) is a well-understood class in the WordPress ecosystem and the barrier to exploitation for authenticated users is low.
RemediationAI
The primary remediation is to update tagDiv Composer to the first version that addresses CVE-2026-12561; the exact patched release number is not confirmed in the available intelligence data - verify with the vendor at https://tagdiv.com/tagdiv-composer-page-builder-basics/ or through the tagDiv cloud dashboard before upgrading. As a compensating control while awaiting a patch, restrict WordPress Contributor and Author role capabilities so that untrusted users cannot submit posts containing raw shortcodes; this can be enforced with a roles-and-capabilities plugin (e.g., Members or User Role Editor) by removing shortcode-bearing content submission rights, though this may break legitimate page-builder workflows. A second compensating control is to disable or remove the [vc_raw_html] shortcode handler via a mu-plugin that hooks into add_shortcode() to replace the render callback with a no-op; trade-off is that any existing legitimate content using this shortcode will stop rendering. Wordfence's WAF rules (for Wordfence Premium subscribers) may provide virtual patching for this specific bypass pattern.
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
tagDiv Composer is a page-builder plugin bundled with tagDiv premium WordPress themes (e.g., Newspaper, Newsmag) and provides a shortcode [vc_raw_html] intended to allow raw HTML embedding. According to CPE cpe:2.3:a:tagdiv:tagdiv_composer:*:*:*:*:*:*:*:*, all releases through 5.4.5 are affected. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically a filter-bypass pattern: on save, WordPress calls wp_kses_post() against the shortcode's argument, but the attacker supplies base64-encoded payload text that contains no HTML tags and therefore passes the strip_tags() pre-filter intact. At render time, vc_raw_html::render() base64-decodes this argument and concatenates the result directly into page HTML without escaping, reconstituting the malicious script tags. This is a two-phase sanitization gap: the filter operates on encoded (safe-looking) data at write time, but the dangerous content materialises only at read/render time.
Know when Tagdiv Composer 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
PR:L confirmed by Contributor requirement; UI:R because stored payload executes only when a victim user loads the page, not on attacker action alone.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The tagDiv Composer plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the vc_raw_html shortcode in all versions up to and including 5.4.5. This is due to insufficient input sanitization and output escaping in the vc_raw_html::render() method, which base64-decodes shortcode content (after a strip_tags() that is bypassed because the encoded payload contains no tags on save) and concatenates the result directly into the page HTML. Because WordPress's save-time wp_kses_post() filter only sees the inert base64 text inside a normal shortcode bracket and does not decode it, the dangerous tags survive into post_content and are emitted unescaped at render time. 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 (for example, when an Editor or Administrator previews the pending post).
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 Tagdiv Composer
View allThe tagDiv Composer WordPress plugin before 3.5, required by the Newspaper WordPress theme before 12.1 and Newsmag WordP
The tagDiv Composer WordPress plugin before 4.2, used as a companion by the Newspaper and Newsmag themes from tagDiv, do
The tagDiv Composer plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 4.8
The tagDiv Composer WordPress plugin before 4.2, used as a companion by the Newspaper and Newsmag themes from tagDiv, do
Reflected cross-site scripting in the tagDiv Composer (td-composer) WordPress plugin through version 5.4.3 allows remote
Cross-Site Request Forgery (CSRF) vulnerability in tagDiv tagDiv Composer allows Cross-Site Scripting (XSS).4. Rated hig
Stored cross-site scripting (XSS) in tagDiv Composer WordPress plugin versions up to 5.4.3 allows authenticated attacker
The tagDiv Composer plugin for WordPress, used by the Newspaper theme, is vulnerable to Reflected Cross-Site Scripting v
The tagDiv Composer plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the ‘envato_code[]’ paramet
The tagDiv Composer plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the ‘envato_code[]’ paramet
The tagDiv Composer plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the plugin's 'single' module i
Improper neutralization of HTML script tags in tagDiv Composer plugin versions up to 5.4.3 allows unauthenticated remote
EUVD-2026-65290
GHSA-5jqp-q3wh-2735
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB