---
id: CVE-2026-12561
title: >-
  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
summary: >-
  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_r…
severity: medium
cvss: 6.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N'
cwe:
  - CWE-79
published: '2026-08-25'
updated: '2026-09-28'
sourceUpdated: '2026-09-28T23:10:00.143'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-12561'
references:
  - url: 'https://tagdiv.com/tagdiv-composer-page-builder-basics/'
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/48ae6e52-4a66-4676-9528-6f997ef54c7a?source=cve
    label: security@wordfence.com
tags:
  - nvd
ingestedAt: '2026-09-28T23:23:00.536Z'
---

## Overview

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).

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
