{"id":"CVE-2026-119164","kind":"vulnerability","aliases":["CVE-2026-119164"],"related":[],"title":"wpForo Forum WordPress plugin: subscribers can escalate to forum admin","description":"The wpForo Forum plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 3.2.2 via the `data[secondary_groupids]` parameter of the `wpforo_action_profile_update` POST handler. This is due to a type-confusion flaw in the secondary_groupids authorization guard within the `Members::update()` function in `classes/Members.php`, where casting a scalar CSV string (e.g. `\"0,1\"`) with `(array)` before `array_map('intval', …)` and `array_filter()` produces an empty array — causing the guard's outer conditional, and the else-branch that would otherwise strip the field from the update, to be bypassed entirely — while `encode()`/`decode()` downstream correctly explodes the original CSV and persists the attacker-supplied group IDs to `wp_wpforo_profiles.secondary_groupids`. This makes it possible for authenticated attackers, with Subscriber-level access and above, to escalate their forum privileges to wpForo Administrator by injecting the privileged Admin group ID, granting access to the Forum Accesses editor and the ability to rewrite forum-wide capability policies for all members and edit arbitrary content owned by other users. Exploitation requires the attacker to have at least 3 approved wpForo posts to satisfy the plugin's default `min_number_posts_to_edit_account` antispam gate, along with a valid wpforo nonce obtained from their own account profile form.","summary":"The wpForo Forum plugin for WordPress lets any logged-in Subscriber inject extra forum group IDs into their profile through the secondary_groupids field. Injecting the Admin group ID gives the attacker wpForo Administrator rights, including editing content owned by other users and rewriting forum-wide permissions.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"wpforo","fixed":["3.2.3"],"affected":"<= 3.2.2","ecosystem":"wordpress"}],"ecosystems":[],"tags":["package","self-hosted","wordpress","wpforo"],"not_affected_if":["no-wpforo-plugin","plugin-above-3.2.2","registration-closed"],"how_to_check":"- In WordPress admin > Plugins, check the wpForo Forum version; 3.2.2 and earlier are affected, 3.2.3 is the first patched version.\n- Or read the Version line in wp-content/plugins/wpforo/wpforo.php, or run: wp plugin get wpforo --field=version\n- Exposure needs an attacker account with at least 3 approved forum posts (default antispam setting), so sites with open registration are most at risk.\n- Review forum members in wpForo for unexpected Admin secondary groups.","fix":"Update the wpForo Forum plugin to 3.2.3 or later (Wordfence, Patchstack).","status":"open","published_at":"2026-11-07T10:17:07+00:00","first_seen_at":"2026-11-07T10:46:40+00:00","triaged_at":"2026-11-07T10:48:24+00:00","updated_at":"2026-11-07T10:50:31+00:00","category":"package","confidence":0.85,"triage":{"at":"2026-11-07T10:48:24Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","title":"wpForo Forum WordPress plugin: subscribers can escalate to forum admin","impact":"high","summary":"The wpForo Forum plugin for WordPress lets any logged-in Subscriber inject extra forum group IDs into their profile through the secondary_groupids field. Injecting the Admin group ID gives the attacker wpForo Administrator rights, including editing content owned by other users and rewriting forum-wide permissions.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wpforo","self-hosted"],"confidence":0.75,"fix_status":"unknown","needs_auth":"yes","worst_case":"Subscriber account becomes forum admin and can edit others' content","analyst_note":"Find the first fixed wpForo Forum version from the Wordfence or NVD product data for CVE-2026-119164 so the fix field can be filled.","how_to_check":"- Check the installed wpForo Forum plugin version in the WordPress plugins screen or the plugin's readme; the sources do not give a fixed version for this CVE.\n- Look for `secondary_groupids` handling in `classes/Members.php` of the installed plugin.\n- Check whether the site has open subscriber registration, since the attacker needs an account.","plain_action":"","needs_analyst":true,"not_affected_if":["no-wpforo-plugin","registration-closed","plugin-above-3.2.2"],"who_is_affected":"Sites running the wpForo Forum plugin on WordPress with versions up to and including 3.2.2. The attacker needs a Subscriber-level account and at least 3 approved forum posts, so sites with open registration are the most exposed. Sites without wpForo, or where user registration is closed and trusted, are not affected.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000787,"input_tokens":4617,"output_tokens":651,"severity_before":"high"},"analyst_status":"done","analyst_note":"Find the first fixed wpForo Forum version from the Wordfence or NVD product data for CVE-2026-119164 so the fix field can be filled.","search":"'-119164':13A,16A '-2026':12A,15A '0':135C '1':136C '3':259C '3.2.2':91C 'abil':232C 'access':205C,224C,228C 'account':274C,287C 'action':101C 'admin':10A,51B,220C 'administr':58B,215C 'along':277C 'antispam':275C 'approv':260C 'arbitrari':245C 'array':138C,140C,144C,149C 'attack':56B,187C,200C,254C 'attacker-suppli':186C 'authent':199C 'author':119C 'branch':160C 'bypass':172C 'capabl':238C 'cast':129C 'caus':150C 'classes/members.php':127C 'condit':155C 'confus':113C 'content':62B,246C 'correct':178C 'csv':132C,182C 'cve':11A,14A 'data':94C 'decod':176C 'default':268C 'downstream':177C 'due':108C 'e.g':134C 'edit':61B,244C,273C 'editor':229C 'els':159C 'else-branch':158C 'empti':148C 'encod':175C 'entir':173C 'escal':7A,83C,209C 'explod':179C 'exploit':251C 'extra':37B 'field':48B,166C 'filter':145C 'flaw':114C 'form':289C 'forum':2A,9A,26B,38B,70B,75C,211C,227C,236C 'forum-wid':69B,235C 'function':125C 'gate':276C 'give':54B 'grant':223C 'group':39B,52B,189C,221C 'groupid':47B,96C,118C,193C 'guard':120C,152C 'handler':105C 'host':21B 'id':40B,53B,190C,222C 'includ':60B,90C 'inject':36B,49B,217C 'intval':142C 'least':258C 'let':30B 'level':204C 'log':33B 'logged-in':32B 'make':195C 'map':141C 'member':123C,242C 'min':269C 'nonc':282C 'number':270C 'obtain':283C 'origin':181C 'otherwis':163C 'outer':154C 'own':63B,247C 'packag':18B 'paramet':97C 'permiss':72B 'persist':184C 'plugin':4A,27B,76C,266C 'polici':239C 'possibl':197C 'post':104C,262C,271C 'privileg':82C,212C,219C 'produc':146C 'profil':43B,102C,288C 'requir':252C 'rewrit':68B,234C 'right':59B 'satisfi':264C 'scalar':131C 'secondari':46B,95C,117C 'self':20B 'self-host':19B 'string':133C 'strip':164C 'subscrib':5A,35B,203C 'subscriber-level':202C 'suppli':188C 'type':112C 'type-confus':111C 'updat':103C,124C,169C 'user':66B,250C 'valid':280C 'version':86C 'via':92C 'vulner':80C 'wide':71B,237C 'within':121C 'wordpress':3A,22B,29B,78C 'would':162C 'wp_wpforo_profiles.secondary':192C 'wpforo':1A,17A,23B,25B,57B,74C,100C,214C,261C,281C","nicknames":[],"mitigations":[],"who_affected":"Sites running the wpForo Forum plugin on WordPress with versions up to and including 3.2.2. The attacker needs a Subscriber-level account and at least 3 approved forum posts, so sites with open registration are the most exposed. Sites without wpForo, or where user registration is closed and trusted, are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":["wpforo"],"ptokens":["wpforo"],"labels":["high","package","selfhosted","wordpress","wpforo"],"campaign_type":null,"search_a":"'-119164':13A,16A '-2026':12A,15A 'admin':10A 'cve':11A,14A 'escal':7A 'forum':2A,9A 'plugin':4A 'subscrib':5A 'wordpress':3A 'wpforo':1A,17A","search_b":"'admin':51B 'administr':58B 'attack':56B 'content':62B 'edit':61B 'extra':37B 'field':48B 'forum':26B,38B,70B 'forum-wid':69B 'give':54B 'group':39B,52B 'groupid':47B 'host':21B 'id':40B,53B 'includ':60B 'inject':36B,49B 'let':30B 'log':33B 'logged-in':32B 'own':63B 'packag':18B 'permiss':72B 'plugin':27B 'profil':43B 'rewrit':68B 'right':59B 'secondari':46B 'self':20B 'self-host':19B 'subscrib':35B 'user':66B 'wide':71B 'wordpress':22B,29B 'wpforo':23B,25B,57B","search_c":"'0':135C '1':136C '3':259C '3.2.2':91C 'abil':232C 'access':205C,224C,228C 'account':274C,287C 'action':101C 'admin':220C 'administr':215C 'along':277C 'antispam':275C 'approv':260C 'arbitrari':245C 'array':138C,140C,144C,149C 'attack':187C,200C,254C 'attacker-suppli':186C 'authent':199C 'author':119C 'branch':160C 'bypass':172C 'capabl':238C 'cast':129C 'caus':150C 'classes/members.php':127C 'condit':155C 'confus':113C 'content':246C 'correct':178C 'csv':132C,182C 'data':94C 'decod':176C 'default':268C 'downstream':177C 'due':108C 'e.g':134C 'edit':244C,273C 'editor':229C 'els':159C 'else-branch':158C 'empti':148C 'encod':175C 'entir':173C 'escal':83C,209C 'explod':179C 'exploit':251C 'field':166C 'filter':145C 'flaw':114C 'form':289C 'forum':75C,211C,227C,236C 'forum-wid':235C 'function':125C 'gate':276C 'grant':223C 'group':189C,221C 'groupid':96C,118C,193C 'guard':120C,152C 'handler':105C 'id':190C,222C 'includ':90C 'inject':217C 'intval':142C 'least':258C 'level':204C 'make':195C 'map':141C 'member':123C,242C 'min':269C 'nonc':282C 'number':270C 'obtain':283C 'origin':181C 'otherwis':163C 'outer':154C 'own':247C 'paramet':97C 'persist':184C 'plugin':76C,266C 'polici':239C 'possibl':197C 'post':104C,262C,271C 'privileg':82C,212C,219C 'produc':146C 'profil':102C,288C 'requir':252C 'rewrit':234C 'satisfi':264C 'scalar':131C 'secondari':95C,117C 'string':133C 'strip':164C 'subscrib':203C 'subscriber-level':202C 'suppli':188C 'type':112C 'type-confus':111C 'updat':103C,124C,169C 'user':250C 'valid':280C 'version':86C 'via':92C 'vulner':80C 'wide':237C 'within':121C 'wordpress':78C 'would':162C 'wp_wpforo_profiles.secondary':192C 'wpforo':74C,100C,214C,261C,281C","first_public_at":"2026-11-07T10:17:07+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-119164","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119164","severity":null,"published_at":"2026-11-07T10:17:07+00:00","modified_at":"2026-11-07T10:17:07+00:00","first_seen_at":"2026-11-07T10:46:40+00:00","fetched_at":"2026-11-07T10:46:40+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-119164:2101","url":"https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/wpforo/wpforo-forum-322-authenticated-subscriber-privilege-escalation-to-datasecondary-groupids-csv-parameter","severity":null,"published_at":"2026-11-07T10:50:31+00:00","modified_at":"2026-11-07T10:50:31+00:00","first_seen_at":"2026-11-07T10:50:31+00:00","fetched_at":"2026-11-07T10:50:31+00:00","note":"Wordfence and Patchstack both list 3.2.3 as first patched version (affected <= 3.2.2). Neither is the plugin author's own page (changelog/trac not read), so nothing marked verified. No exploitation or PoC found.","cites":["https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/wpforo/wpforo-forum-322-authenticated-subscriber-privilege-escalation-to-datasecondary-groupids-csv-parameter","https://patchstack.com/database/wordpress/plugin/wpforo/vulnerability/wordpress-wpforo-forum-plugin-3-2-2-authenticated-subscriber-privilege-escalation-to-data-secondary-groupids-csv-parameter-vulnerability"]}],"documents":[{"id":94910,"url":"https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/wpforo/wpforo-forum-322-authenticated-subscriber-privilege-escalation-to-datasecondary-groupids-csv-parameter","title":"Wordfence: wpForo Forum <= 3.2.2 privilege escalation","kind":"advisory","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":94911,"url":"https://patchstack.com/database/wordpress/plugin/wpforo/vulnerability/wordpress-wpforo-forum-plugin-3-2-2-authenticated-subscriber-privilege-escalation-to-data-secondary-groupids-csv-parameter-vulnerability","title":"Patchstack: wpForo Forum <= 3.2.2 privilege escalation","kind":"advisory","source":"analyst","publisher":null,"text":null,"published_at":null,"relation":"fix","confidence":null,"note":null}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}