# QA Assistants <= 5.3.0.2 - Unauthenticated Stored Cross-Site Scripting via Tracked Page URL

- **ID:** WPSEC-2026-2953
- **Plugin:** QA Assistants – Driven by data (`qa-heatmap-analytics`), https://wordpress.org/plugins/qa-heatmap-analytics/
- **Affected versions:** all versions before 5.3.0.3
- **Fixed in:** 5.3.0.3 (Update to 5.3.0.3 or later.)
- **Severity:** High 7.2 (CVSS:3.1/AV:N/AC:L/PR:N/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-11-12)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/qa-heatmap-analytics
- **Fix released:** 2026-11-10
- **Published:** 2026-11-12
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2953/

## Description

The QA Assistants plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the tracked page URL in all versions up to, and including, 5.3.0.2. This is due to insufficient validation and output escaping. The page URL submitted to the public tracking endpoint is placed unescaped into a <base href> attribute in the generated replay and heatmap capture files. Remotely fetched HTML from an attacker-chosen host is also served from the site's own origin without sandboxing. This makes it possible for unauthenticated attackers to inject arbitrary web scripts that execute when an administrator views the replay or heatmap of the affected page.

## References

- https://wpsec.com/vuln/WPSEC-2026-2953/
- https://plugins.svn.wordpress.org/qa-heatmap-analytics/tags/5.3.0.3/
- https://wordpress.org/plugins/qa-heatmap-analytics/

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

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.
