# Ad Inserter – Ad Manager & AdSense Ads <= 2.8.19 - Reflected Cross-Site Scripting via Request URI in Debugging Tools and {url} Tag

- **ID:** WPSEC-2026-1943
- **Plugin:** Ad Inserter – Ad Manager & AdSense Ads (`ad-inserter`), https://wordpress.org/plugins/ad-inserter/
- **Affected versions:** all versions before 2.8.20
- **Fixed in:** 2.8.20 (Update to 2.8.20 or later.)
- **Severity:** Medium 4.7 (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N)
- **Weakness:** CWE-79
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-10-29)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/ad-inserter
- **Fix released:** 2026-10-28
- **Published:** 2026-10-29
- **URL:** https://wpsec.com/vuln/WPSEC-2026-1943/

## Description

The Ad Inserter plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the request URI in all versions up to, and including, 2.8.19 due to insufficient output escaping. URLs built from the current request with remove_query_arg()/add_query_arg(), which return decoded query parameter names, were printed without escaping in the links of the front-end Debugging tools block and widget, and were substituted unescaped for the {url} tag in block code. The Debugging tools block also rendered for any visitor. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into clicking a crafted link.

## References

- https://wpsec.com/vuln/WPSEC-2026-1943/
- https://plugins.svn.wordpress.org/ad-inserter/tags/2.8.20/
- https://wordpress.org/plugins/ad-inserter/

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

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.
