# Post Carousel <= 4.0.9 - Authenticated (Contributor+) Stored Cross-Site Scripting via Block Attributes

- **ID:** WPSEC-2026-2190
- **Plugin:** Smart Post – Post Grid, Post Carousel, Post Slider Gutenberg Blocks for Blog & News (`post-carousel`), https://wordpress.org/plugins/post-carousel/
- **Affected versions:** from 4.0.0 before 4.0.10
- **Fixed in:** 4.0.10 (Update to 4.0.10 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 Medium, affected versions Medium (as of 2026-11-03)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/post-carousel
- **Fix released:** 2026-10-30
- **Published:** 2026-11-03
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2190/

## Description

The Smart Post plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'titleHTMLTag' attribute of the post blocks and the 'collapsibleColor' attribute of the Table of Contents block in all versions from 4.0.0 up to, and including, 4.0.9, due to insufficient input sanitization and output escaping. The title tag value is only passed through esc_html() before being used as the element name, which leaves spaces and '=' in place, and the collapsible icon color is concatenated unescaped into SVG attributes. 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-2190/
- https://plugins.svn.wordpress.org/post-carousel/tags/4.0.10/
- https://wordpress.org/plugins/post-carousel/

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

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.
