{"id":"CVE-2026-110004","kind":"vulnerability","aliases":["CVE-2026-110004"],"related":[],"title":"wpForo Forum plugin: authenticated file deletion can lead to code execution","description":"The wpForo Forum plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the theme_delete function in all versions up to, and including, 3.2.2 This makes it possible for authenticated attackers, with subscriber-level access and above, to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). This exploit chain is reachable only on sites where an administrator has created a custom wpForo secondary usergroup with a blank WordPress role and the 'mth' (Manage Themes) capability; on such sites, an attacker can self-register and claim that group via the unguarded wpforo_secondary_groupids[] POST field, bypassing the role-based group filter and gaining theme-management access as a Subscriber.","summary":"The wpForo Forum WordPress plugin up to and including 3.2.2 fails to validate file paths in its theme_delete function. An authenticated subscriber can delete arbitrary files on the server, such as wp-config.php, which can lead to remote code execution.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","wordpress","wpforo"],"not_affected_if":["default-config","no-custom-secondary-usergroup","plugin-not-installed"],"how_to_check":"- Check the installed wpForo version in the WordPress admin plugin list or the plugin's main file header; versions up to and including `3.2.2` are affected.\n- Look for custom wpForo secondary usergroups that are mapped to a blank WordPress role with the `mth` (Manage Themes) capability.","fix":null,"status":"open","published_at":"2026-11-07T10:17:06+00:00","first_seen_at":"2026-11-07T10:46:40+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: authenticated file deletion can lead to code execution","impact":"high","summary":"The wpForo Forum WordPress plugin up to and including 3.2.2 fails to validate file paths in its theme_delete function. An authenticated subscriber can delete arbitrary files on the server, such as wp-config.php, which can lead to remote code execution.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wpforo","self-hosted"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"Attacker deletes wp-config.php and gains code execution on server","analyst_note":"Sources do not state a fixed version; confirm the patched wpForo release from the NVD or vendor page.","how_to_check":"- Check the installed wpForo version in the WordPress admin plugin list or the plugin's main file header; versions up to and including `3.2.2` are affected.\n- Look for custom wpForo secondary usergroups that are mapped to a blank WordPress role with the `mth` (Manage Themes) capability.","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-not-installed","no-custom-secondary-usergroup","default-config"],"who_is_affected":"Sites running wpForo up to and including 3.2.2 are exposed to the file deletion. The chain described in the sources needs an administrator to have created a custom wpForo secondary usergroup with a blank WordPress role and the 'mth' capability; on sites without that configuration the attacker cannot claim theme-management access. Sites that do not run wpForo can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000747,"input_tokens":4397,"output_tokens":614,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-110004':14A,17A '-2026':13A,16A '3.2.2':33B,94C 'access':106C,195C 'administr':143C 'arbitrari':49B,73C,111C 'attack':101C,166C 'authent':4A,45B,100C 'base':187C 'blank':153C 'bypass':183C 'capabl':161C 'chain':135C 'claim':172C 'code':10A,62B,122C 'creat':145C 'custom':147C 'cve':12A,15A 'delet':6A,42B,48B,75C,85C,110C,129C 'due':76C 'easili':118C 'execut':11A,63B,123C 'exploit':134C 'fail':34B 'field':182C 'file':5A,37B,50B,74C,79C,112C,127C 'filter':189C 'forum':2A,26B,66C 'function':43B,86C 'gain':191C 'group':174C,188C 'groupid':180C 'host':21B 'includ':32B,93C 'insuffici':78C 'lead':8A,59B,119C 'level':105C 'make':96C 'manag':159C,194C 'mth':158C 'packag':18B 'path':38B,80C 'plugin':3A,28B,67C 'possibl':98C 'post':181C 'reachabl':137C 'regist':170C 'remot':61B,121C 'right':126C 'role':155C,186C 'role-bas':185C 'secondari':149C,179C 'self':20B,169C 'self-host':19B 'self-regist':168C 'server':53B,115C 'site':140C,164C 'subscrib':46B,104C,198C 'subscriber-level':103C 'theme':41B,84C,160C,193C 'theme-manag':192C 'unguard':177C 'usergroup':150C 'valid':36B,81C 'version':89C 'via':175C 'vulner':71C 'wordpress':22B,27B,69C,154C 'wp-config.php':56B,132C 'wpforo':1A,23B,25B,65C,148C,178C","nicknames":[],"mitigations":[],"who_affected":"Sites running wpForo up to and including 3.2.2 are exposed to the file deletion. The chain described in the sources needs an administrator to have created a custom wpForo secondary usergroup with a blank WordPress role and the 'mth' capability; on sites without that configuration the attacker cannot claim theme-management access. Sites that do not run wpForo can skip it.","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":"'-110004':14A,17A '-2026':13A,16A 'authent':4A 'code':10A 'cve':12A,15A 'delet':6A 'execut':11A 'file':5A 'forum':2A 'lead':8A 'plugin':3A 'wpforo':1A","search_b":"'3.2.2':33B 'arbitrari':49B 'authent':45B 'code':62B 'delet':42B,48B 'execut':63B 'fail':34B 'file':37B,50B 'forum':26B 'function':43B 'host':21B 'includ':32B 'lead':59B 'packag':18B 'path':38B 'plugin':28B 'remot':61B 'self':20B 'self-host':19B 'server':53B 'subscrib':46B 'theme':41B 'valid':36B 'wordpress':22B,27B 'wp-config.php':56B 'wpforo':23B,25B","search_c":"'3.2.2':94C 'access':106C,195C 'administr':143C 'arbitrari':73C,111C 'attack':101C,166C 'authent':100C 'base':187C 'blank':153C 'bypass':183C 'capabl':161C 'chain':135C 'claim':172C 'code':122C 'creat':145C 'custom':147C 'delet':75C,85C,110C,129C 'due':76C 'easili':118C 'execut':123C 'exploit':134C 'field':182C 'file':74C,79C,112C,127C 'filter':189C 'forum':66C 'function':86C 'gain':191C 'group':174C,188C 'groupid':180C 'includ':93C 'insuffici':78C 'lead':119C 'level':105C 'make':96C 'manag':159C,194C 'mth':158C 'path':80C 'plugin':67C 'possibl':98C 'post':181C 'reachabl':137C 'regist':170C 'remot':121C 'right':126C 'role':155C,186C 'role-bas':185C 'secondari':149C,179C 'self':169C 'self-regist':168C 'server':115C 'site':140C,164C 'subscrib':104C,198C 'subscriber-level':103C 'theme':84C,160C,193C 'theme-manag':192C 'unguard':177C 'usergroup':150C 'valid':81C 'version':89C 'via':175C 'vulner':71C 'wordpress':69C,154C 'wp-config.php':132C 'wpforo':65C,148C,178C","first_public_at":"2026-11-07T10:17:06+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-110004","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110004","severity":null,"published_at":"2026-11-07T10:17:06+00:00","modified_at":"2026-11-07T10:17:06+00:00","first_seen_at":"2026-11-07T10:46:40+00:00","fetched_at":"2026-11-07T10:46:40+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"}