# Anti-Spam by CleanTalk <= 6.90 - Authenticated (Contributor+) Stored Cross-Site Scripting via Force Protection Form Wrapper

- **ID:** WPSEC-2026-2025
- **Plugin:** Anti-Spam, Spam FireWall by CleanTalk (`cleantalk-spam-protect`), https://wordpress.org/plugins/cleantalk-spam-protect/
- **Affected versions:** from 6.48 before 6.91
- **Fixed in:** 6.91 (Update to 6.91 or later.)
- **Severity:** Medium 4.9 (CVSS:3.1/AV:N/AC:H/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-30)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/cleantalk-spam-protect
- **Fix released:** 2026-10-29
- **Published:** 2026-10-30
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2025/

## Description

The Anti-Spam, Spam FireWall by CleanTalk plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the Force Protection form wrapper in all versions up to, and including, 6.90, due to the front-end script decoding every 'ct-encoded-form-wrapper' element on the page and writing its base64 'data-encoded-form' value into outerHTML, without checking that the plugin created the wrapper. This makes it possible for authenticated attackers with Contributor-level access and above to place a wrapper in post content that runs arbitrary web scripts in a visitor's browser when the Force Protection setting is enabled.

## References

- https://wpsec.com/vuln/WPSEC-2026-2025/
- https://plugins.svn.wordpress.org/cleantalk-spam-protect/tags/6.91/
- https://wordpress.org/plugins/cleantalk-spam-protect/

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

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.
