{"api_version":"1","generated_at":"2026-10-16T08:08:40+00:00","cve":"CVE-2026-95686","urls":{"html":"https://cve.report/CVE-2026-95686","api":"https://cve.report/api/cve/CVE-2026-95686.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-95686","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-95686"},"summary":{"title":"Opti-Behavior <= 1.9.2.1 - Unauthenticated Stored DOM-Based Cross-Site Scripting via 'targetUrl' Parameter","description":"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.","state":"PUBLISHED","assigner":"Wordfence","published_at":"2026-10-16 06:17:12","updated_at":"2026-10-16 06:17:12"},"problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":[{"version":"3.1","source":"security@wordfence.com","type":"Primary","score":"7.2","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","baseScore":7.2,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.2","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","data":{"baseScore":7.2,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","version":"3.1"}}],"references":[{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/public/class-opti-behavior-heatmap-frontend.php#L905","name":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/public/class-opti-behavior-heatmap-frontend.php#L905","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-post-metabox.php#L1389","name":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-post-metabox.php#L1389","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/assets/js/metabox-analytics.js#L553","name":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/assets/js/metabox-analytics.js#L553","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/41f6939d-d87a-47e5-979f-2cad021c6e81?source=cve","name":"https://www.wordfence.com/threat-intel/vulnerabilities/id/41f6939d-d87a-47e5-979f-2cad021c6e81?source=cve","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-ajax-handler.php#L1652","name":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-ajax-handler.php#L1652","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/changeset/3738510/opti-behavior/trunk/assets/js/metabox-analytics.js","name":"https://plugins.trac.wordpress.org/changeset/3738510/opti-behavior/trunk/assets/js/metabox-analytics.js","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-ajax-handler.php#L3455","name":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-ajax-handler.php#L3455","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.svn.wordpress.org/opti-behavior/","name":"https://plugins.svn.wordpress.org/opti-behavior/","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-95686","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-95686","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"optiuser","product":"Opti-Behavior – Self-Hosted Heatmaps, Funnels, A/B Testing & Smart Insights","version":"affected 1.9.2.1 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-09-22T17:51:43.000Z","lang":"en","value":"Vendor Notified"},{"source":"CNA","time":"2026-10-15T16:29:45.000Z","lang":"en","value":"Disclosed"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"Décio Brandão","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Opti-Behavior – Self-Hosted Heatmaps, Funnels, A/B Testing & Smart Insights","vendor":"optiuser","versions":[{"lessThanOrEqual":"1.9.2.1","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"Décio Brandão"}],"descriptions":[{"lang":"en","value":"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."}],"metrics":[{"cvssV3_1":{"baseScore":7.2,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-79","description":"CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-10-16T05:30:21.426Z","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence"},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/41f6939d-d87a-47e5-979f-2cad021c6e81?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/assets/js/metabox-analytics.js#L553"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-ajax-handler.php#L1652"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-ajax-handler.php#L3455"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/admin/class-opti-behavior-heatmap-post-metabox.php#L1389"},{"url":"https://plugins.trac.wordpress.org/browser/opti-behavior/tags/1.9.1/public/class-opti-behavior-heatmap-frontend.php#L905"},{"url":"https://plugins.svn.wordpress.org/opti-behavior/"},{"url":"https://plugins.trac.wordpress.org/changeset/3738510/opti-behavior/trunk/assets/js/metabox-analytics.js"}],"timeline":[{"lang":"en","time":"2026-09-22T17:51:43.000Z","value":"Vendor Notified"},{"lang":"en","time":"2026-10-15T16:29:45.000Z","value":"Disclosed"}],"title":"Opti-Behavior <= 1.9.2.1 - Unauthenticated Stored DOM-Based Cross-Site Scripting via 'targetUrl' Parameter"}},"cveMetadata":{"assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","assignerShortName":"Wordfence","cveId":"CVE-2026-95686","datePublished":"2026-10-16T05:30:21.426Z","dateReserved":"2026-09-22T14:13:59.977Z","dateUpdated":"2026-10-16T05:30:21.426Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-16 06:17:12","lastModifiedDate":"2026-10-16 06:17:12","problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')"],"metrics":{"cvssMetricV31":[{"source":"security@wordfence.com","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","baseScore":7.2,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":3.9,"impactScore":2.7}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"95686","Ordinal":"1","Title":"Opti-Behavior <= 1.9.2.1 - Unauthenticated Stored DOM-Based Cros","CVE":"CVE-2026-95686","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"95686","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"Opti-Behavior <= 1.9.2.1 - Unauthenticated Stored DOM-Based Cros"}]}}}