{"api_version":"1","generated_at":"2026-11-08T14:16:43+00:00","cve":"CVE-2026-119164","urls":{"html":"https://cve.report/CVE-2026-119164","api":"https://cve.report/api/cve/CVE-2026-119164.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-119164","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-119164"},"summary":{"title":"wpForo Forum <= 3.2.2 - Authenticated (Subscriber+) Privilege Escalation to 'data[secondary_groupids]' CSV Parameter","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.","state":"PUBLISHED","assigner":"Wordfence","published_at":"2026-11-07 10:17:07","updated_at":"2026-11-07 10:17:07"},"problem_types":["CWE-269","CWE-269 CWE-269 Improper Privilege Management"],"metrics":[{"version":"3.1","source":"security@wordfence.com","type":"Primary","score":"7.5","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.5,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.5","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"baseScore":7.5,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Actions.php#L724","name":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Actions.php#L724","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=&new=3778162%40wpforo%2Ftags%2F3.2.3&old=3717441%40wpforo%2Ftags%2F3.2.2","name":"https://plugins.trac.wordpress.org/changeset?reponame=&new=3778162%40wpforo%2Ftags%2F3.2.3&old=3717441%40wpforo%2Ftags%2F3.2.2","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L840","name":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L840","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://wordpress.org/plugins/wpforo/#developers","name":"https://wordpress.org/plugins/wpforo/#developers","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L731","name":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L731","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/8ef7232d-4acd-4db2-bfd0-d8e44bd59c19?source=cve","name":"https://www.wordfence.com/threat-intel/vulnerabilities/id/8ef7232d-4acd-4db2-bfd0-d8e44bd59c19?source=cve","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L1071","name":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L1071","refsource":"security@wordfence.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-119164","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-119164","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"tomdever","product":"wpForo Forum","version":"affected 3.2.2 semver","platforms":[]}],"timeline":[{"source":"CNA","time":"2026-10-29T15:17:33.000Z","lang":"en","value":"Vendor Notified"},{"source":"CNA","time":"2026-11-06T21:21:01.000Z","lang":"en","value":"Disclosed"}],"solutions":[],"workarounds":[],"exploits":[],"credits":[{"source":"CNA","value":"R3D","lang":"en"}],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"119164","cve":"CVE-2026-119164","epss":"0.005130000","percentile":"0.439720000","score_date":"2026-11-07","updated_at":"2026-11-08 00:06:14"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"wpForo Forum","vendor":"tomdever","versions":[{"lessThanOrEqual":"3.2.2","status":"affected","version":"0","versionType":"semver"}]}],"credits":[{"lang":"en","type":"finder","value":"R3D"}],"descriptions":[{"lang":"en","value":"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."}],"metrics":[{"cvssV3_1":{"baseScore":7.5,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-269","description":"CWE-269 Improper Privilege Management","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-11-07T09:25:47.581Z","orgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","shortName":"Wordfence"},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/8ef7232d-4acd-4db2-bfd0-d8e44bd59c19?source=cve"},{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L840"},{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L1071"},{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Actions.php#L724"},{"url":"https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L731"},{"url":"https://wordpress.org/plugins/wpforo/#developers"},{"url":"https://plugins.trac.wordpress.org/changeset?reponame=&new=3778162%40wpforo%2Ftags%2F3.2.3&old=3717441%40wpforo%2Ftags%2F3.2.2"}],"timeline":[{"lang":"en","time":"2026-10-29T15:17:33.000Z","value":"Vendor Notified"},{"lang":"en","time":"2026-11-06T21:21:01.000Z","value":"Disclosed"}],"title":"wpForo Forum <= 3.2.2 - Authenticated (Subscriber+) Privilege Escalation to 'data[secondary_groupids]' CSV Parameter"}},"cveMetadata":{"assignerOrgId":"b15e7b5b-3da4-40ae-a43c-f7aa60e62599","assignerShortName":"Wordfence","cveId":"CVE-2026-119164","datePublished":"2026-11-07T09:25:47.581Z","dateReserved":"2026-10-29T14:59:18.253Z","dateUpdated":"2026-11-07T09:25:47.581Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-11-07 10:17:07","lastModifiedDate":"2026-11-07 10:17:07","problem_types":["CWE-269","CWE-269 CWE-269 Improper Privilege Management"],"metrics":{"cvssMetricV31":[{"source":"security@wordfence.com","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.5,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"HIGH","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1.6,"impactScore":5.9}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"119164","Ordinal":"1","Title":"wpForo Forum <= 3.2.2 - Authenticated (Subscriber+) Privilege Es","CVE":"CVE-2026-119164","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"119164","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"wpForo Forum <= 3.2.2 - Authenticated (Subscriber+) Privilege Es"}]}}}