# If-So Dynamic Content <= 1.10.3 - Unauthenticated Reflected Cross-Site Scripting via Dynamic Keyword Insertion (ifsoDKI) AJAX Rendering

- **ID:** WPSEC-2026-2596
- **Plugin:** If-So Dynamic Content – Elementor & All Page Builders Personalization (`if-so`), https://wordpress.org/plugins/if-so/
- **Affected versions:** all versions before 1.10.4
- **Fixed in:** 1.10.4 (Update to 1.10.4 or later.)
- **Severity:** Medium 6.1 (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/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-05)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/if-so
- **Fix released:** 2026-11-04
- **Published:** 2026-11-05
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2596/

## Description

The If-So Dynamic Content plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the Dynamic Keyword Insertion (ifsoDKI) rendering of the 'render_ifso_shortcodes' AJAX action in all versions up to, and including, 1.10.3, due to insufficient sanitization and escaping. The DKI attributes are taken from the request, and the rendered values (for example the output of the 'time' type with a request-supplied 'format') are returned JSON-encoded without encoding HTML tags in a response served as HTML. This makes it possible for unauthenticated attackers to inject arbitrary web scripts that execute if they can successfully trick a user into performing an action such as clicking on a crafted link.

## References

- https://wpsec.com/vuln/WPSEC-2026-2596/
- https://plugins.svn.wordpress.org/if-so/tags/1.10.4/
- https://wordpress.org/plugins/if-so/

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

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.
