{"id":"CVE-2026-96870","kind":"vulnerability","aliases":["CVE-2026-96870"],"related":[],"title":"SureDash WordPress plugin: stored XSS via display_name lets subscribers run scripts","description":"The SureDash – Community, Courses & Member Dashboard plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'display_name' parameter in all versions up to, and including, 1.12.0 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The exploit is triggered when any user hovers over a comment's like counter on a community page, as the plugin's tooltip handler assigns the attacker-controlled data-tooltip-description attribute value directly to innerHTML, re-parsing the browser-decoded entity payload as live HTML.","summary":"The SureDash WordPress plugin up to and including 1.12.0 does not sanitize the display_name parameter, so a logged-in subscriber can store a script that runs in other users' browsers. The script runs when a user hovers over a comment's like counter on a community page, which lets an attacker act as the victim on the site.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","suredash","wordpress"],"not_affected_if":["newer-version","no-public-registration","plugin-not-installed"],"how_to_check":"- Check the installed SureDash version in the WordPress plugins screen or with `wp plugin get suredash --field=version`\n- Check whether the site allows subscriber registration, since subscriber-level access is enough to exploit it","fix":"- Update the SureDash plugin to a version later than `1.12.0`; the exact fixed version is unknown from the sources\n- Until patched, restrict or disable new subscriber registration on the site","status":"open","published_at":"2026-10-16T08:17:13+00:00","first_seen_at":"2026-10-23T21:57:12+00:00","triaged_at":"2026-10-25T03:59:45+00:00","updated_at":"2026-10-25T03:59:45+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T03:59:45Z","model":"claude-haiku-5-5","output":{"fix":"- Update the SureDash plugin to a version later than `1.12.0`; the exact fixed version is unknown from the sources\n- Until patched, restrict or disable new subscriber registration on the site","reach":"internet","title":"SureDash WordPress plugin: stored XSS via display_name lets subscribers run scripts","impact":"medium","summary":"The SureDash WordPress plugin up to and including 1.12.0 does not sanitize the display_name parameter, so a logged-in subscriber can store a script that runs in other users' browsers. The script runs when a user hovers over a comment's like counter on a community page, which lets an attacker act as the victim on the site.","category":"package","nicknames":[],"who_cares":["wordpress","suredash","self-hosted"],"confidence":0.8,"needs_auth":"yes","worst_case":"Attacker script runs in other users' browsers and can steal sessions","analyst_note":"","how_to_check":"- Check the installed SureDash version in the WordPress plugins screen or with `wp plugin get suredash --field=version`\n- Check whether the site allows subscriber registration, since subscriber-level access is enough to exploit it","needs_analyst":false,"not_affected_if":["plugin-not-installed","newer-version","no-public-registration"],"who_is_affected":"Sites running the SureDash community and member dashboard plugin at version 1.12.0 or earlier are exposed. The risk depends on users being able to register or hold subscriber accounts, since those accounts are what let an attacker store the payload; sites where only administrators can log in are lower risk.","user_interaction":"yes","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000634,"input_tokens":3469,"output_tokens":575,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-96870':15A,18A '1.12.0':33B,114C 'access':134C,150C 'act':78B 'arbitrari':139C 'assign':178C 'attack':77B,129C,181C 'attacker-control':180C 'attribut':187C 'authent':128C 'browser':56B,197C 'browser-decod':196C 'comment':66B,164C 'communiti':72B,87C,170C 'control':182C 'counter':69B,167C 'cours':88C 'cross':99C 'cross-sit':98C 'cve':13A,16A 'dashboard':90C 'data':184C 'data-tooltip-descript':183C 'decod':198C 'descript':186C 'direct':189C 'display':7A,38B,104C 'due':115C 'entiti':199C 'escap':122C 'execut':146C 'exploit':155C 'handler':177C 'host':22B 'hover':63B,161C 'html':203C 'includ':32B,113C 'inject':138C,152C 'innerhtml':191C 'input':118C 'insuffici':117C 'let':9A,75B 'level':133C 'like':68B,166C 'live':202C 'log':44B 'logged-in':43B 'make':124C 'member':89C 'name':8A,39B,105C 'output':121C 'packag':19B 'page':73B,143C,153C,171C 'paramet':40B,106C 'pars':194C 'payload':200C 'plugin':3A,28B,91C,174C 'possibl':126C 're':193C 're-pars':192C 'run':11A,52B,59B 'sanit':36B,119C 'script':12A,50B,58B,101C,141C 'self':21B 'self-host':20B 'site':84B,100C 'store':4A,48B,97C 'subscrib':10A,46B,132C 'subscriber-level':131C 'suredash':1A,23B,26B,86C 'tooltip':176C,185C 'trigger':157C 'user':55B,62B,149C,160C 'valu':188C 'version':109C 'via':6A,102C 'victim':81B 'vulner':95C 'web':140C 'whenev':147C 'wordpress':2A,24B,27B,93C 'xss':5A","nicknames":[],"mitigations":[],"who_affected":"Sites running the SureDash community and member dashboard plugin at version 1.12.0 or earlier are exposed. The risk depends on users being able to register or hold subscriber accounts, since those accounts are what let an attacker store the payload; sites where only administrators can log in are lower risk.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T08:17:13+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-96870","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-96870","severity":null,"published_at":"2026-10-16T08:17:13+00:00","modified_at":"2026-10-16T15:17:37+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"}