{"api_version":"1","generated_at":"2026-11-07T15:53:42+00:00","cve":"CVE-2026-109230","urls":{"html":"https://cve.report/CVE-2026-109230","api":"https://cve.report/api/cve/CVE-2026-109230.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-109230","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-109230"},"summary":{"title":"WP Visitor Statistics (Real Time Traffic) <= 8.7.1 - Unauthenticated Stored Cross-Site Scripting via 'browser' Parameter","description":"The WP Visitor Statistics (Real Time Traffic) plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'browser' parameter in all versions up to, and including, 8.7.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 payload is stored via an unauthenticated HTTP request to the public visitor tracking endpoint (wmcAction=wmcTrack) and executes when the bundled jqPlot PieRenderer inserts the HTML-decoded series label directly as HTML in the authenticated administrator's browser.","state":"PUBLISHED","assigner":"Wordfence","published_at":"2026-11-07 12:17:42","updated_at":"2026-11-07 12:17:42"},"problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation"],"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://www.wordfence.com/threat-intel/vulnerabilities/id/756679f3-b6d2-4458-ad68-556551491ac7?source=cve","name":"https://www.wordfence.com/threat-intel/vulnerabilities/id/756679f3-b6d2-4458-ad68-556551491ac7?source=cve","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/js/custom_admin.js#L319","name":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/js/custom_admin.js#L319","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_statistics.php#L3957","name":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_statistics.php#L3957","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/wp-stats-manager.php#L109","name":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/wp-stats-manager.php#L109","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_db.php#L215","name":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_db.php#L215","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=&old=3763124%40wp-stats-manager&new=3763124%40wp-stats-manager","name":"https://plugins.trac.wordpress.org/changeset?reponame=&old=3763124%40wp-stats-manager&new=3763124%40wp-stats-manager","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_requests.php#L305","name":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_requests.php#L305","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-109230","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109230","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"osamaesh","product":"WP Visitor Statistics (Real Time Traffic)","version":"affected 8.7.1 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-10-12T14:14:07.000Z","lang":"en","value":"Vendor Notified"},{"source":"CNA","time":"2026-11-06T21:36:50.000Z","lang":"en","value":"Disclosed"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"Adrien Brunner","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"WP Visitor Statistics (Real Time Traffic)","vendor":"osamaesh","versions":[{"lessThanOrEqual":"8.7.1","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"Adrien Brunner"}],"descriptions":[{"lang":"en","value":"The WP Visitor Statistics (Real Time Traffic) plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'browser' parameter in all versions up to, and including, 8.7.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 payload is stored via an unauthenticated HTTP request to the public visitor tracking endpoint (wmcAction=wmcTrack) and executes when the bundled jqPlot PieRenderer inserts the HTML-decoded series label directly as HTML in the authenticated administrator's browser."}],"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","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-07T11:26:30.940Z","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence"},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/756679f3-b6d2-4458-ad68-556551491ac7?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_requests.php#L305"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_statistics.php#L3957"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/js/custom_admin.js#L319"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/wp-stats-manager.php#L109"},{"url":"https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.7.1/includes/wsm_db.php#L215"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=&old=3763124%40wp-stats-manager&new=3763124%40wp-stats-manager"}],"timeline":[{"lang":"en","time":"2026-10-12T14:14:07.000Z","value":"Vendor Notified"},{"lang":"en","time":"2026-11-06T21:36:50.000Z","value":"Disclosed"}],"title":"WP Visitor Statistics (Real Time Traffic) <= 8.7.1 - Unauthenticated Stored Cross-Site Scripting via 'browser' Parameter"}},"cveMetadata":{"assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","assignerShortName":"Wordfence","cveId":"CVE-2026-109230","datePublished":"2026-11-07T11:26:30.940Z","dateReserved":"2026-10-12T13:58:46.948Z","dateUpdated":"2026-11-07T11:26:30.940Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-07 12:17:42","lastModifiedDate":"2026-11-07 12:17:42","problem_types":["CWE-79","CWE-79 CWE-79 Improper Neutralization of Input During Web Page Generation"],"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":"109230","Ordinal":"1","Title":"WP Visitor Statistics (Real Time Traffic) <= 8.7.1 - Unauthentic","CVE":"CVE-2026-109230","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"109230","Ordinal":"1","NoteData":"The WP Visitor Statistics (Real Time Traffic) plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'browser' parameter in all versions up to, and including, 8.7.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 payload is stored via an unauthenticated HTTP request to the public visitor tracking endpoint (wmcAction=wmcTrack) and executes when the bundled jqPlot PieRenderer inserts the HTML-decoded series label directly as HTML in the authenticated administrator's browser.","Type":"Description","Title":"WP Visitor Statistics (Real Time Traffic) <= 8.7.1 - Unauthentic"}]}}}