{"id":"CVE-2026-110721","kind":"vulnerability","aliases":["CVE-2026-110721"],"related":[],"title":"NotificationX WordPress plugin: unauthenticated users can inject fake social-proof entries","description":"The NotificationX plugin for WordPress is vulnerable to Missing Authorization leading to arbitrary content injection in versions up to, and including, 3.3.3 The /notificationx/v1/popup-submit REST route is registered with permission_callback => '__return_true', and the handler at PopupNotification::handle_popup_submission() accepts an attacker-controlled nx_id, loads whichever NotificationX campaign that id points to, and copies that campaign's own source into the new entry without verifying that the campaign is a Popup Notification or Exit Intent Popup (the two sources this form is intended to serve). This makes it possible for unauthenticated attackers to inject forged social-proof entries (name, title, message, email, theme) into any enabled non-popup NotificationX campaign — WP Comments, WooCommerce/EDD/Give sales, reviews, etc.","summary":"NotificationX up to and including 3.3.3 registers the REST route /notificationx/v1/popup-submit with no permission check, so anyone can call it. An attacker can use it to add forged names, titles, messages and emails to any enabled non-popup campaign, such as WP Comments or WooCommerce sales.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["notificationx","other","self-hosted","woocommerce","wordpress"],"not_affected_if":["only-popup-campaigns","plugin-above-3.3.3","plugin-not-installed"],"how_to_check":"- Check the installed version with `wp plugin get notificationx --field=version` or the Plugins screen; versions `3.3.3` and older are affected.\n- Request `/wp-json/notificationx/v1/popup-submit` without logging in and see whether the route responds.\n- Review NotificationX campaigns for enabled non-popup sources (WP Comments, WooCommerce, EDD, Give, reviews).","fix":"- Update NotificationX to a release newer than `3.3.3`.\n- Until updated, deactivate the plugin or disable non-popup NotificationX campaigns.\n- Remove any forged entries already shown on the site.","status":"open","published_at":"2026-10-16T05:17:30+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T04:28:49+00:00","updated_at":"2026-10-25T04:28:49+00:00","category":"other","confidence":0.8,"triage":{"at":"2026-10-25T04:28:49Z","model":"claude-haiku-5-5","output":{"fix":"- Update NotificationX to a release newer than `3.3.3`.\n- Until updated, deactivate the plugin or disable non-popup NotificationX campaigns.\n- Remove any forged entries already shown on the site.","reach":"internet","title":"NotificationX WordPress plugin: unauthenticated users can inject fake social-proof entries","impact":"medium","summary":"NotificationX up to and including 3.3.3 registers the REST route /notificationx/v1/popup-submit with no permission check, so anyone can call it. An attacker can use it to add forged names, titles, messages and emails to any enabled non-popup campaign, such as WP Comments or WooCommerce sales.","category":"other","nicknames":[],"who_cares":["wordpress","notificationx","woocommerce","self-hosted"],"confidence":0.8,"needs_auth":"no","worst_case":"Forged testimonials and sales notices shown to every visitor.","analyst_note":"","how_to_check":"- Check the installed version with `wp plugin get notificationx --field=version` or the Plugins screen; versions `3.3.3` and older are affected.\n- Request `/wp-json/notificationx/v1/popup-submit` without logging in and see whether the route responds.\n- Review NotificationX campaigns for enabled non-popup sources (WP Comments, WooCommerce, EDD, Give, reviews).","needs_analyst":false,"not_affected_if":["plugin-not-installed","plugin-above-3.3.3","only-popup-campaigns"],"who_is_affected":"WordPress sites that run NotificationX `3.3.3` or older are exposed, because the route accepts requests from anonymous visitors. The impact is most visible on sites with enabled WP Comments, WooCommerce, EDD, Give or review campaigns; sites that only use popup or exit-intent campaigns are not exposed to the injection. Sites without the plugin can skip it.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.00139,"input_tokens":3506,"output_tokens":2078,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-110721':15A,18A '-2026':14A,17A '/notificationx/v1/popup-submit':36B,96C '3.3.3':31B,94C 'accept':114C 'add':52B 'anyon':42B 'arbitrari':85C 'attack':47B,117C,168C 'attacker-control':116C 'author':82C 'call':44B 'callback':103C 'campaign':65B,124C,132C,144C,188C 'check':40B 'comment':69B,190C 'content':86C 'control':118C 'copi':130C 'cve':13A,16A 'email':58B,179C 'enabl':61B,183C 'entri':12A,139C,175C 'etc':194C 'exit':150C 'fake':8A 'forg':53B,171C 'form':157C 'handl':111C 'handler':108C 'host':23B 'id':120C,126C 'includ':30B,93C 'inject':7A,87C,170C 'intend':159C 'intent':151C 'lead':83C 'load':121C 'make':163C 'messag':56B,178C 'miss':81C 'name':54B,176C 'new':138C 'non':63B,185C 'non-popup':62B,184C 'notif':148C 'notificationx':1A,19B,26B,74C,123C,187C 'nx':119C 'permiss':39B,102C 'plugin':3A,75C 'point':127C 'popup':64B,112C,147C,152C,186C 'popupnotif':110C 'possibl':165C 'proof':11A,174C 'regist':32B,100C 'rest':34B,97C 'return':104C 'review':193C 'rout':35B,98C 'sale':72B,192C 'self':22B 'self-host':21B 'serv':161C 'social':10A,173C 'social-proof':9A,172C 'sourc':135C,155C 'submiss':113C 'theme':180C 'titl':55B,177C 'true':105C 'two':154C 'unauthent':4A,167C 'use':49B 'user':5A 'verifi':141C 'version':89C 'vulner':79C 'whichev':122C 'without':140C 'woocommerc':24B,71B 'woocommerce/edd/give':191C 'wordpress':2A,25B,77C 'wp':68B,189C","nicknames":[],"mitigations":[],"who_affected":"WordPress sites that run NotificationX `3.3.3` or older are exposed, because the route accepts requests from anonymous visitors. The impact is most visible on sites with enabled WP Comments, WooCommerce, EDD, Give or review campaigns; sites that only use popup or exit-intent campaigns are not exposed to the injection. Sites without the plugin can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T05:17:30+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-110721","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110721","severity":null,"published_at":"2026-10-16T05:17:30+00:00","modified_at":"2026-10-16T15:17:11+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"}