# Kadence Blocks <= 3.8.0 - Authenticated (Contributor+) Stored Cross-Site Scripting via Progress Bar Block Number Prefix and Suffix

- **ID:** WPSEC-2026-1369
- **Plugin:** Kadence Blocks — Page Builder Toolkit for Gutenberg Editor (`kadence-blocks`), https://wordpress.org/plugins/kadence-blocks/
- **Affected versions:** all versions before 3.8.0.1
- **Fixed in:** 3.8.0.1 (Update to 3.8.0.1 or later.)
- **Severity:** Medium 6.4 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin High, affected versions High (as of 2026-10-21)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/kadence-blocks
- **Fix released:** 2026-10-19
- **Published:** 2026-10-21
- **URL:** https://wpsec.com/vuln/WPSEC-2026-1369/

## Description

The Kadence Blocks plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Progress Bar block's numberPrefix and numberSuffix attributes in all versions up to, and including, 3.8.0 due to insufficient output escaping. The values were only passed through esc_attr(), which leaves existing HTML entities as they are, before being handed to the front-end progress bar script. That script decoded the entities and wrote the result into the page with innerHTML. 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.

## References

- https://wpsec.com/vuln/WPSEC-2026-1369/
- https://plugins.svn.wordpress.org/kadence-blocks/tags/3.8.0.1/
- https://wordpress.org/plugins/kadence-blocks/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-1369/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
