{"id":"CVE-2026-109513","kind":"vulnerability","aliases":["CVE-2026-109513"],"related":[],"title":"NotificationX WordPress plugin: unauthenticated stored XSS via name parameter","description":"The NotificationX – FOMO, Live Sales Notification, WooCommerce Sales Popup, GDPR, Social Proof, Announcement Banner & Floating Notification Bar plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'name' parameter in all versions up to, and including, 3.3.3 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. This requires that an administrator has previously enabled a WordPress.org Reviews campaign and placed the notificationx-pro/notificationx dynamic block on a public page, both of which are documented, supported plugin workflows.","summary":"The NotificationX WordPress plugin up to and including 3.3.3 does not sanitize the 'name' parameter, so unauthenticated attackers can store script that runs in visitors' browsers on pages showing the notification block. The injected script runs whenever a user loads an affected public page.","severity":"high","cvss":7.2,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["notificationx","package","self-hosted","wordpress","wordpress-plugin"],"not_affected_if":["default-config","no-public-notificationx-block"],"how_to_check":"- Check the installed NotificationX version in the WordPress plugins screen or with `wp plugin get notificationx --field=version`\n- Confirm whether the WordPress.org Reviews campaign is enabled and the notificationx dynamic block is placed on a public page (unknown if sources give a specific location)","fix":"- Update NotificationX to a version later than `3.3.3` (the first fixed version is unknown from the sources)\n- Until updated, disable the WordPress.org Reviews campaign or remove the notificationx block from public pages","status":"open","published_at":"2026-10-16T06:17:08+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:29:49+00:00","updated_at":"2026-10-25T03:29:49+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:29:49Z","model":"claude-haiku-5-5","output":{"fix":"- Update NotificationX to a version later than `3.3.3` (the first fixed version is unknown from the sources)\n- Until updated, disable the WordPress.org Reviews campaign or remove the notificationx block from public pages","reach":"internet","title":"NotificationX WordPress plugin: unauthenticated stored XSS via name parameter","impact":"medium","summary":"The NotificationX WordPress plugin up to and including 3.3.3 does not sanitize the 'name' parameter, so unauthenticated attackers can store script that runs in visitors' browsers on pages showing the notification block. The injected script runs whenever a user loads an affected public page.","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugin","notificationx","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"Attacker script runs in visitors' browsers on affected pages, enabling session theft","analyst_note":"Confirm the fixed version and whether the public NVD entry lists the patched release; sources did not give one.","how_to_check":"- Check the installed NotificationX version in the WordPress plugins screen or with `wp plugin get notificationx --field=version`\n- Confirm whether the WordPress.org Reviews campaign is enabled and the notificationx dynamic block is placed on a public page (unknown if sources give a specific location)","needs_analyst":true,"not_affected_if":["default-config","no-public-notificationx-block"],"who_is_affected":"Sites running NotificationX 3.3.3 or earlier where an administrator has enabled a WordPress.org Reviews campaign and placed the notificationx dynamic block on a public page. Sites without that campaign or block on public pages are not exposed through this path.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000665,"input_tokens":3483,"output_tokens":634,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-109513':12A,15A '-2026':11A,14A '/notificationx':159C '3.3.3':33B,108C 'access':137C 'administr':145C 'affect':66B 'announc':81C 'arbitrari':126C 'attack':42B,123C 'banner':82C 'bar':85C 'block':56B,161C 'browser':50B 'campaign':152C 'cross':94C 'cross-sit':93C 'cve':10A,13A 'document':170C 'due':109C 'dynam':160C 'enabl':148C 'escap':116C 'execut':133C 'float':83C 'fomo':71C 'gdpr':78C 'host':20B 'includ':32B,107C 'inject':58B,125C,139C 'input':112C 'insuffici':111C 'live':72C 'load':64B 'make':118C 'name':8A,38B,99C 'notif':55B,74C,84C 'notificationx':1A,16B,26B,70C,157C 'notificationx-pro':156C 'output':115C 'packag':17B 'page':52B,68B,130C,140C,165C 'paramet':9A,39B,100C 'place':154C 'plugin':3A,24B,28B,86C,172C 'popup':77C 'possibl':120C 'previous':147C 'pro':158C 'proof':80C 'public':67B,164C 'requir':142C 'review':151C 'run':47B,60B 'sale':73C,76C 'sanit':36B,113C 'script':45B,59B,96C,128C 'self':19B 'self-host':18B 'show':53B 'site':95C 'social':79C 'store':5A,44B,92C 'support':171C 'unauthent':4A,41B,122C 'user':63B,136C 'version':103C 'via':7A,97C 'visitor':49B 'vulner':90C 'web':127C 'whenev':61B,134C 'woocommerc':75C 'wordpress':2A,21B,23B,27B,88C 'wordpress-plugin':22B 'wordpress.org':150C 'workflow':173C 'xss':6A","nicknames":[],"mitigations":[],"who_affected":"Sites running NotificationX 3.3.3 or earlier where an administrator has enabled a WordPress.org Reviews campaign and placed the notificationx dynamic block on a public page. Sites without that campaign or block on public pages are not exposed through this path.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T06:17:08+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-109513","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-109513","severity":null,"published_at":"2026-10-16T06:17:08+00:00","modified_at":"2026-10-16T15:17:07+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}