{"id":"CVE-2026-120532","kind":"vulnerability","aliases":["CVE-2026-120532"],"related":[],"title":"wpForo Forum plugin: stored script injection through post body parameter","description":"The wpForo Forum plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'post[body]' parameter in all versions up to, and including, 3.2.2 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.","summary":"The wpForo Forum plugin for WordPress stores unsanitized input from the post body parameter and outputs it without escaping, in all versions up to and including 3.2.2. An authenticated subscriber can inject scripts that run in the browser of anyone who opens the injected page.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wpforo"],"not_affected_if":["auth-required","plugin-not-installed"],"how_to_check":"- Check the installed wpForo version in the WordPress admin plugin list, or in the plugin's main file header.\n- Confirm whether subscriber-level accounts can register or post on the forum.","fix":null,"status":"open","published_at":"2026-11-07T10:17:09+00:00","first_seen_at":"2026-11-07T10:46:41+00:00","triaged_at":"2026-11-07T10:48:33+00:00","updated_at":"2026-11-07T10:48:33+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-07T10:48:33Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"wpForo Forum plugin: stored script injection through post body parameter","impact":"medium","summary":"The wpForo Forum plugin for WordPress stores unsanitized input from the post body parameter and outputs it without escaping, in all versions up to and including 3.2.2. An authenticated subscriber can inject scripts that run in the browser of anyone who opens the injected page.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wpforo","self-hosted"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"Scripts run in visitors' browsers, potentially stealing their sessions","analyst_note":"","how_to_check":"- Check the installed wpForo version in the WordPress admin plugin list, or in the plugin's main file header.\n- Confirm whether subscriber-level accounts can register or post on the forum.","plain_action":"","needs_analyst":false,"not_affected_if":["plugin-not-installed","auth-required"],"who_is_affected":"Sites running the wpForo Forum plugin at version 3.2.2 or earlier that allow subscriber-level users to post. The attacker needs a logged-in account, and the script runs for visitors who open the affected page. Sites without wpForo, or running a newer version, are not affected according to the sources.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000683,"input_tokens":4278,"output_tokens":511,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-120532':13A,16A '-2026':12A,15A '3.2.2':49B,94C 'access':114C,130C 'anyon':62B 'arbitrari':119C 'attack':109C 'authent':51B,108C 'bodi':9A,35B,85C 'browser':60B 'cross':79C 'cross-sit':78C 'cve':11A,14A 'due':95C 'escap':41B,102C 'execut':126C 'forum':2A,25B,70C 'host':20B 'includ':48B,93C 'inject':6A,54B,66B,118C,132C 'input':31B,98C 'insuffici':97C 'level':113C 'make':104C 'open':64B 'output':38B,101C 'packag':17B 'page':67B,123C,133C 'paramet':10A,36B,86C 'plugin':3A,26B,71C 'possibl':106C 'post':8A,34B,84C 'run':57B 'sanit':99C 'script':5A,55B,81C,121C 'self':19B 'self-host':18B 'site':80C 'store':4A,29B,77C 'subscrib':52B,112C 'subscriber-level':111C 'unsanit':30B 'user':129C 'version':44B,89C 'via':82C 'vulner':75C 'web':120C 'whenev':127C 'without':40B 'wordpress':21B,28B,73C 'wpforo':1A,22B,24B,69C","nicknames":[],"mitigations":[],"who_affected":"Sites running the wpForo Forum plugin at version 3.2.2 or earlier that allow subscriber-level users to post. The attacker needs a logged-in account, and the script runs for visitors who open the affected page. Sites without wpForo, or running a newer version, are not affected according to the sources.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","selfhosted","wordpress","wpforo"],"campaign_type":null,"search_a":"'-120532':13A,16A '-2026':12A,15A 'bodi':9A 'cve':11A,14A 'forum':2A 'inject':6A 'paramet':10A 'plugin':3A 'post':8A 'script':5A 'store':4A 'wpforo':1A","search_b":"'3.2.2':49B 'anyon':62B 'authent':51B 'bodi':35B 'browser':60B 'escap':41B 'forum':25B 'host':20B 'includ':48B 'inject':54B,66B 'input':31B 'open':64B 'output':38B 'packag':17B 'page':67B 'paramet':36B 'plugin':26B 'post':34B 'run':57B 'script':55B 'self':19B 'self-host':18B 'store':29B 'subscrib':52B 'unsanit':30B 'version':44B 'without':40B 'wordpress':21B,28B 'wpforo':22B,24B","search_c":"'3.2.2':94C 'access':114C,130C 'arbitrari':119C 'attack':109C 'authent':108C 'bodi':85C 'cross':79C 'cross-sit':78C 'due':95C 'escap':102C 'execut':126C 'forum':70C 'includ':93C 'inject':118C,132C 'input':98C 'insuffici':97C 'level':113C 'make':104C 'output':101C 'page':123C,133C 'paramet':86C 'plugin':71C 'possibl':106C 'post':84C 'sanit':99C 'script':81C,121C 'site':80C 'store':77C 'subscrib':112C 'subscriber-level':111C 'user':129C 'version':89C 'via':82C 'vulner':75C 'web':120C 'whenev':127C 'wordpress':73C 'wpforo':69C","first_public_at":"2026-11-07T10:17:09+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-120532","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120532","severity":null,"published_at":"2026-11-07T10:17:09+00:00","modified_at":"2026-11-07T10:17:09+00:00","first_seen_at":"2026-11-07T10:46:41+00:00","fetched_at":"2026-11-07T10:46:41+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"}