{"id":"CVE-2026-118235","kind":"vulnerability","aliases":["CVE-2026-118235"],"related":[],"title":"WordPress SimpleForm plugin: unauthenticated file upload leads to code execution","description":"The SimpleForm – Form Maker to Chat Apps with Quiz, Poll and Multi Lead Notifications plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 3.10.2 via the handle_upload function. This is due to missing server-side file key allowlist and pre-sanitization extension derivation that allows a trailing-dot filename to bypass all extension and MIME validation in handle_upload. This makes it possible for unauthenticated attackers to upload files that may be executable, which makes remote code execution possible. The only access control is a nonce that is printed into every public form's data-nonce attribute, making it trivially obtainable by any unauthenticated visitor on a page embedding the form shortcode.","summary":"The SimpleForm WordPress plugin up to and including 3.10.2 accepts file uploads through its handle_upload function without proper extension checks, because a trailing-dot filename bypasses validation. An unauthenticated visitor can obtain the nonce printed on any public form page and upload an executable file, which can lead to remote code execution on the site.","severity":"critical","cvss":9.8,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","simpleform","wordpress"],"not_affected_if":["plugin-above-3.10.2","plugin-not-installed"],"how_to_check":"- Check whether the SimpleForm plugin is installed and its version in the WordPress admin under Plugins, or in the plugin's main file header.\n- Look for the `simpleform` plugin directory under `wp-content/plugins/` and confirm whether its version is `3.10.2` or lower.","fix":"- SimpleForm plugin: unknown (the sources do not state a fixed version)","status":"open","published_at":"2026-10-31T09:16:33+00:00","first_seen_at":"2026-10-31T09:34:41+00:00","triaged_at":"2026-10-31T09:35:40+00:00","updated_at":"2026-10-31T09:35:40+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-31T09:35:40Z","model":"claude-haiku-5-5","output":{"fix":"- SimpleForm plugin: unknown (the sources do not state a fixed version)","reach":"internet","title":"WordPress SimpleForm plugin: unauthenticated file upload leads to code execution","impact":"high","summary":"The SimpleForm WordPress plugin up to and including 3.10.2 accepts file uploads through its handle_upload function without proper extension checks, because a trailing-dot filename bypasses validation. An unauthenticated visitor can obtain the nonce printed on any public form page and upload an executable file, which can lead to remote code execution on the site.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","self-hosted","simpleform"],"confidence":0.8,"fix_status":"unknown","needs_auth":"no","worst_case":"Attacker uploads executable file and runs code on the server","analyst_note":"Confirm whether a patched SimpleForm version exists and what it is; the NVD entry alone does not state a fix.","how_to_check":"- Check whether the SimpleForm plugin is installed and its version in the WordPress admin under Plugins, or in the plugin's main file header.\n- Look for the `simpleform` plugin directory under `wp-content/plugins/` and confirm whether its version is `3.10.2` or lower.","plain_action":"","needs_analyst":true,"not_affected_if":["plugin-not-installed","plugin-above-3.10.2"],"who_is_affected":"Any WordPress site running the SimpleForm plugin at version 3.10.2 or lower with a form embedded on a public page is exposed, since the nonce needed to upload is printed in the page HTML. Sites without this plugin, or with it removed, are not affected. The sources do not describe further conditions.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.000745,"input_tokens":4286,"output_tokens":633,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-118235':13A,16A '-2026':12A,15A '3.10.2':31B,110C 'accept':32B 'access':172C 'allow':134C 'allowlist':126C 'app':86C 'arbitrari':100C 'attack':156C 'attribut':188C 'bypass':50B,141C 'chat':85C 'check':43B 'code':9A,75B,167C 'control':173C 'cve':11A,14A 'data':186C 'data-nonc':185C 'deriv':132C 'dot':48B,138C 'due':118C 'embed':200C 'everi':181C 'execut':10A,68B,76B,163C,168C 'extens':42B,131C,143C 'file':5A,33B,69B,101C,124C,159C 'filenam':49B,139C 'form':63B,82C,183C,202C 'function':39B,115C 'handl':37B,113C,148C 'host':20B 'includ':30B,109C 'key':125C 'lead':7A,72B,92C 'make':151C,165C,189C 'maker':83C 'may':161C 'mime':145C 'miss':120C 'multi':91C 'nonc':58B,176C,187C 'notif':93C 'obtain':56B,192C 'packag':17B 'page':64B,199C 'plugin':3A,26B,94C 'poll':89C 'possibl':153C,169C 'pre':129C 'pre-sanit':128C 'print':59B,179C 'proper':41B 'public':62B,182C 'quiz':88C 'remot':74B,166C 'sanit':130C 'self':19B 'self-host':18B 'server':122C 'server-sid':121C 'shortcod':203C 'side':123C 'simpleform':2A,21B,24B,81C 'site':79B 'trail':47B,137C 'trailing-dot':46B,136C 'trivial':191C 'unauthent':4A,53B,155C,195C 'upload':6A,34B,38B,66B,102C,114C,149C,158C 'valid':51B,146C 'version':105C 'via':111C 'visitor':54B,196C 'vulner':98C 'without':40B 'wordpress':1A,22B,25B,96C","nicknames":[],"mitigations":[],"who_affected":"Any WordPress site running the SimpleForm plugin at version 3.10.2 or lower with a form embedded on a public page is exposed, since the nonce needed to upload is printed in the page HTML. Sites without this plugin, or with it removed, are not affected. The sources do not describe further conditions.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"first_public_at":"2026-10-31T09:16:33+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/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-118235","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118235","severity":null,"published_at":"2026-10-31T09:16:33+00:00","modified_at":"2026-10-31T09:16:33+00:00","first_seen_at":"2026-10-31T09:34:41+00:00","fetched_at":"2026-10-31T09:34:41+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}