---
id: "CVE-2026-95686"
kind: "vulnerability"
aliases: ["CVE-2026-95686"]
title: "Opti-Behavior WordPress plugin: unauthenticated stored XSS via targetUrl"
severity: "high"
cvss: 7.2
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "self-hosted", "wordpress", "wordpress-plugin"]
not_affected_if: ["patched-version", "plugin-not-installed"]
published_at: "2026-10-16T06:17:12+00:00"
first_seen_at: "2026-10-23T21:57:12+00:00"
updated_at: "2026-10-25T03:29:45+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-95686", "first_seen_at": "2026-10-23T21:57:12+00:00"}]
---

# Opti-Behavior WordPress plugin: unauthenticated stored XSS via targetUrl

The Opti-Behavior WordPress plugin up to and including 1.9.2.1 fails to sanitize the targetUrl parameter on its ingest endpoint. An unauthenticated attacker can store a script that runs in the browser of any user who loads the injected page.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed plugin version in the WordPress admin under Plugins, or with `wp plugin get opti-behavior --field=version`
- Look for the plugin's heatmap config script (optiBehaviorHeatmapConfig) in page source on tracked pages

## Fix

- Update the Opti-Behavior plugin to a version later than `1.9.2.1`, as soon as a patched release is available
- Until then, deactivate the plugin on public sites

## Timeline

- 2026-10-23T21:57:12+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-95686

## From the sources

The Opti-Behavior – Self-Hosted Heatmaps, Session Recordings, Funnels, A/B Testing & Smart Insights plugin for WordPress is vulnerable to Stored DOM-Based Cross-Site Scripting via the 'targetUrl' parameter in all versions up to, and including, 1.9.2.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The ingest endpoint is gated only by a nonce that is publicly emitted to every anonymous visitor on tracked pages via optiBehaviorHeatmapConfig.nonce, meaning no account or authentication of any kind is required to write the malicious payload.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
