CVE-2026-119164
Full vulnerability record from the local CVENow database.
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.
View original CVE JSON
{
"id": "CVE-2026-119164",
"sourceIdentifier": "[email protected]",
"published": "2026-11-07T10:17:07.337",
"lastModified": "2026-11-07T10:17:07.487",
"vulnStatus": "Deferred",
"cveTags": [],
"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."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "tomdever",
"product": "wpForo Forum",
"defaultStatus": "unaffected",
"versions": [
{
"version": "0",
"lessThanOrEqual": "3.2.2",
"versionType": "semver",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"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
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Primary",
"description": [
{
"lang": "en",
"value": "CWE-269"
}
]
}
],
"references": [
{
"url": "https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Actions.php#L724",
"source": "[email protected]"
},
{
"url": "https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L1071",
"source": "[email protected]"
},
{
"url": "https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L731",
"source": "[email protected]"
},
{
"url": "https://plugins.trac.wordpress.org/browser/wpforo/tags/3.2.2/classes/Members.php#L840",
"source": "[email protected]"
},
{
"url": "https://plugins.trac.wordpress.org/changeset?reponame=&new=3778162%40wpforo%2Ftags%2F3.2.3&old=3717441%40wpforo%2Ftags%2F3.2.2",
"source": "[email protected]"
},
{
"url": "https://wordpress.org/plugins/wpforo/#developers",
"source": "[email protected]"
},
{
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/8ef7232d-4acd-4db2-bfd0-d8e44bd59c19?source=cve",
"source": "[email protected]"
}
]
}