# Sticky Ads Lightweight <= 3.3.0 - Authenticated (Administrator+) Stored Cross-Site Scripting via Ad Code Setting

- **ID:** WPSEC-2026-0938
- **Plugin:** Sticky Ads Lightweight (`sticky-ad-lightweight`), https://wordpress.org/plugins/sticky-ad-lightweight/
- **Affected versions:** all versions before 3.4.0
- **Fixed in:** 3.4.0 (Update to 3.4.0 or later.)
- **Severity:** Medium 4.4 (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/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-14)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/sticky-ad-lightweight
- **Fix released:** 2026-10-11
- **Published:** 2026-10-14
- **URL:** https://wpsec.com/vuln/WPSEC-2026-0938/

## Description

The Sticky Ads Lightweight plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the ad code setting in all versions up to, and including, 3.3.0 due to insufficient input sanitization. The sanitizer explicitly allowed <script> tags with src, async, defer and charset attributes for users without the unfiltered_html capability, and the saved code is output unescaped on the front end. This makes it possible for authenticated attackers with administrator-level access to inject arbitrary web scripts that execute whenever a user visits a page showing the sticky ad. This only affects multisite installations and installations where unfiltered_html has been disabled.

## References

- https://wpsec.com/vuln/WPSEC-2026-0938/
- https://plugins.svn.wordpress.org/sticky-ad-lightweight/tags/3.4.0/
- https://wordpress.org/plugins/sticky-ad-lightweight/

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

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.
