{"id":"CVE-2026-120671","kind":"vulnerability","aliases":["CVE-2026-120671"],"related":[],"title":"UsersWP WordPress plugin: stored XSS via badge parameter","description":"The UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'badge' parameter in all versions up to, and including, 1.2.80 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The exploit is particularly effective against higher-privileged users — such as editors and administrators — who preview a Contributor's pending post containing the malicious shortcode.","summary":"The UsersWP WordPress plugin does not sanitize the 'badge' parameter, so stored script can be injected. When an editor or administrator previews a Contributor's pending post containing the malicious shortcode, the script runs in their browser.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","userswp","wordpress"],"not_affected_if":["no-contributor-accounts","plugin-not-installed"],"how_to_check":"- Check whether the UsersWP plugin is installed and its version in the WordPress admin plugins list\n- Compare the installed version against `1.2.80`, which is the last affected version per the description","fix":null,"status":"open","published_at":"2026-11-06T09:17:00+00:00","first_seen_at":"2026-11-06T09:40:32+00:00","triaged_at":"2026-11-06T09:40:46+00:00","updated_at":"2026-11-06T09:40:46+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-06T09:40:46Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"UsersWP WordPress plugin: stored XSS via badge parameter","impact":"medium","summary":"The UsersWP WordPress plugin does not sanitize the 'badge' parameter, so stored script can be injected. When an editor or administrator previews a Contributor's pending post containing the malicious shortcode, the script runs in their browser.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","usersWP","self-hosted"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"script runs in editor or admin browser sessions","analyst_note":"Confirm a fixed version of UsersWP above 1.2.80 and whether the vendor has released a patch; source only lists NVD.","how_to_check":"- Check whether the UsersWP plugin is installed and its version in the WordPress admin plugins list\n- Compare the installed version against `1.2.80`, which is the last affected version per the description\n- unknown for a fixed version","plain_action":"","needs_analyst":true,"not_affected_if":["no-contributor-accounts","plugin-not-installed"],"who_is_affected":"Sites running the UsersWP plugin up to and including version 1.2.80 that have contributor-level accounts or above. The exploit targets higher-privileged users who preview pending posts, so sites without contributor accounts are unlikely to be exposed. unknown whether a fixed version exists.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000708,"input_tokens":4343,"output_tokens":548,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-120671':11A,14A '-2026':10A,13A '1.2.80':96C 'access':116C,132C 'administr':41B,150C 'arbitrari':121C 'attack':111C 'authent':110C 'badg':7A,29B,87C 'browser':57B 'contain':48B,158C 'contributor':44B,114C,154C 'contributor-level':113C 'cross':82C 'cross-sit':81C 'cve':9A,12A 'directori':70C 'due':97C 'editor':39B,148C 'effect':140C 'end':62C 'escap':104C 'execut':128C 'exploit':137C 'form':64C 'front':61C 'front-end':60C 'higher':143C 'higher-privileg':142C 'host':18B 'includ':95C 'inject':36B,120C,134C 'input':100C 'insuffici':99C 'level':115C 'login':63C 'make':106C 'malici':50B,160C 'member':69C 'output':103C 'packag':15B 'page':125C,135C 'paramet':8A,30B,88C 'particular':139C 'pend':46B,156C 'plugin':3A,24B,71C,74C 'possibl':108C 'post':47B,157C 'preview':42B,152C 'privileg':144C 'profil':68C 'registr':66C 'run':54B 'sanit':27B,101C 'script':33B,53B,84C,123C 'self':17B 'self-host':16B 'shortcod':51B,161C 'site':83C 'store':4A,32B,80C 'user':65C,67C,131C,145C 'userswp':1A,19B,22B,59C 'version':91C 'via':6A,85C 'vulner':78C 'web':122C 'whenev':129C 'wordpress':2A,20B,23B,76C 'wp':73C 'xss':5A","nicknames":[],"mitigations":[],"who_affected":"Sites running the UsersWP plugin up to and including version 1.2.80 that have contributor-level accounts or above. The exploit targets higher-privileged users who preview pending posts, so sites without contributor accounts are unlikely to be exposed. unknown whether a fixed version exists.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","selfhosted","userswp","wordpress"],"campaign_type":null,"search_a":"'-120671':11A,14A '-2026':10A,13A 'badg':7A 'cve':9A,12A 'paramet':8A 'plugin':3A 'store':4A 'userswp':1A 'via':6A 'wordpress':2A 'xss':5A","search_b":"'administr':41B 'badg':29B 'browser':57B 'contain':48B 'contributor':44B 'editor':39B 'host':18B 'inject':36B 'malici':50B 'packag':15B 'paramet':30B 'pend':46B 'plugin':24B 'post':47B 'preview':42B 'run':54B 'sanit':27B 'script':33B,53B 'self':17B 'self-host':16B 'shortcod':51B 'store':32B 'userswp':19B,22B 'wordpress':20B,23B","search_c":"'1.2.80':96C 'access':116C,132C 'administr':150C 'arbitrari':121C 'attack':111C 'authent':110C 'badg':87C 'contain':158C 'contributor':114C,154C 'contributor-level':113C 'cross':82C 'cross-sit':81C 'directori':70C 'due':97C 'editor':148C 'effect':140C 'end':62C 'escap':104C 'execut':128C 'exploit':137C 'form':64C 'front':61C 'front-end':60C 'higher':143C 'higher-privileg':142C 'includ':95C 'inject':120C,134C 'input':100C 'insuffici':99C 'level':115C 'login':63C 'make':106C 'malici':160C 'member':69C 'output':103C 'page':125C,135C 'paramet':88C 'particular':139C 'pend':156C 'plugin':71C,74C 'possibl':108C 'post':157C 'preview':152C 'privileg':144C 'profil':68C 'registr':66C 'sanit':101C 'script':84C,123C 'shortcod':161C 'site':83C 'store':80C 'user':65C,67C,131C,145C 'userswp':59C 'version':91C 'via':85C 'vulner':78C 'web':122C 'whenev':129C 'wordpress':76C 'wp':73C","first_public_at":"2026-11-06T09:17:00+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/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-120671","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120671","severity":null,"published_at":"2026-11-06T09:17:00+00:00","modified_at":"2026-11-06T09:17:00+00:00","first_seen_at":"2026-11-06T09:40:32+00:00","fetched_at":"2026-11-06T09:40:32+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}