{"id":"CVE-2026-114432","kind":"vulnerability","aliases":["CVE-2026-114432"],"related":[],"title":"Contact Form 7 plugin: unauthenticated file upload can lead to code execution","description":"The Contact Form 7 WordPress plugin before 6.2.4 does not validate the type or extension of files uploaded through a form file field, and a flaw in its temporary-file cleanup leaves the uploaded file on disk, allowing unauthenticated users to upload arbitrary files to the site. On a stock Debian or Ubuntu Apache configuration, which lists directory contents and maps .phar to the PHP handler, the stored file can be located and executed, leading to Remote Code Execution. On other configurations, including nginx and Apache with .htaccess overrides enabled, the issue is limited to an arbitrary file written into the uploads directory, which may still be served as active content such as HTML or SVG from the site's own origin.","summary":"The Contact Form 7 WordPress plugin before 6.2.4 does not check the type or extension of files uploaded through form file fields, and its temporary-file cleanup leaves them on disk. An unauthenticated visitor can plant an arbitrary file on the site, and on a stock Debian or Ubuntu Apache setup that file can be found and executed as PHP, giving remote code execution.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache","contact-form-7","nginx","package","self-hosted","wordpress"],"not_affected_if":["no-file-upload-fields","version-6.2.4-or-later"],"how_to_check":"- Check the installed Contact Form 7 version in the WordPress admin plugins list, or in the plugin header of `wp-content/plugins/contact-form-7/contact-form-7.php`; versions below `6.2.4` are listed as affected.\n- Check whether forms on the site use file upload fields.\n- Check the web server configuration for directory listing and `.phar` handling on the uploads path.","fix":"- Contact Form 7 `6.2.4` (fix is the version named in the sources; earlier versions are affected).","status":"open","published_at":"2026-11-08T06:17:04+00:00","first_seen_at":"2026-11-08T06:46:21+00:00","triaged_at":"2026-11-08T06:47:17+00:00","updated_at":"2026-11-08T06:47:17+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-08T06:47:17Z","model":"claude-haiku-5-5","output":{"fix":"- Contact Form 7 `6.2.4` (fix is the version named in the sources; earlier versions are affected).","reach":"internet","title":"Contact Form 7 plugin: unauthenticated file upload can lead to code execution","impact":"high","summary":"The Contact Form 7 WordPress plugin before 6.2.4 does not check the type or extension of files uploaded through form file fields, and its temporary-file cleanup leaves them on disk. An unauthenticated visitor can plant an arbitrary file on the site, and on a stock Debian or Ubuntu Apache setup that file can be found and executed as PHP, giving remote code execution.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","contact-form-7","self-hosted","apache","nginx"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"Attacker runs code on the web server through an uploaded file","analyst_note":"Confirm the exact affected version range and fixed version from the plugin's own advisory or the WordPress plugin page; the NVD record here does not state a fix version in the product data.","how_to_check":"- Check the installed Contact Form 7 version in the WordPress admin plugins list, or in the plugin header of `wp-content/plugins/contact-form-7/contact-form-7.php`; versions below `6.2.4` are listed as affected.\n- Check whether forms on the site use file upload fields.\n- Check the web server configuration for directory listing and `.phar` handling on the uploads path.","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["no-file-upload-fields","version-6.2.4-or-later"],"who_is_affected":"Sites running Contact Form 7 before 6.2.4 with a form that includes a file upload field. Exposure to code execution is highest on stock Debian or Ubuntu Apache hosts where directory listing is on and .phar maps to PHP; nginx and Apache with .htaccess overrides limit the impact to files written into the uploads directory that may be served as active content such as HTML or SVG. Sites without upload fields on their forms are not affected.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.00086,"input_tokens":4687,"output_tokens":782,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-114432':15A,18A '-2026':14A,17A '6.2.4':37B,102C '7':3A,23B,33B,98C 'activ':205C 'allow':133C 'apach':19B,80B,149C,181C 'arbitrari':68B,138C,192C 'check':40B 'cleanup':57B,126C 'code':11A,93B,173C 'configur':150C,177C 'contact':1A,21B,31B,96C 'contact-form':20B 'content':154C,206C 'cve':13A,16A 'debian':77B,146C 'directori':153C,198C 'disk':61B,132C 'enabl':185C 'execut':12A,88B,94B,169C,174C 'extens':44B,109C 'field':51B,117C 'file':6A,46B,50B,56B,69B,83B,111C,116C,125C,130C,139C,164C,193C 'flaw':120C 'form':2A,22B,32B,49B,97C,115C 'found':86B 'give':91B 'handler':161C 'host':28B 'htaccess':183C 'html':209C 'includ':178C 'issu':187C 'lead':9A,170C 'leav':58B,127C 'limit':189C 'list':152C 'locat':167C 'map':156C 'may':200C 'nginx':24B,179C 'origin':217C 'overrid':184C 'packag':25B 'phar':157C 'php':90B,160C 'plant':66B 'plugin':4A,35B,100C 'remot':92B,172C 'self':27B 'self-host':26B 'serv':203C 'setup':81B 'site':72B,142C,214C 'still':201C 'stock':76B,145C 'store':163C 'svg':211C 'temporari':55B,124C 'temporary-fil':54B,123C 'type':42B,107C 'ubuntu':79B,148C 'unauthent':5A,63B,134C 'upload':7A,47B,112C,129C,137C,197C 'user':135C 'valid':105C 'visitor':64B 'wordpress':29B,34B,99C 'written':194C","nicknames":[],"mitigations":[],"who_affected":"Sites running Contact Form 7 before 6.2.4 with a form that includes a file upload field. Exposure to code execution is highest on stock Debian or Ubuntu Apache hosts where directory listing is on and .phar maps to PHP; nginx and Apache with .htaccess overrides limit the impact to files written into the uploads directory that may be served as active content such as HTML or SVG. Sites without upload fields on their forms are not affected.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["apache","contactform7","high","nginx","package","selfhosted","wordpress"],"campaign_type":null,"search_a":"'-114432':15A,18A '-2026':14A,17A '7':3A 'code':11A 'contact':1A 'cve':13A,16A 'execut':12A 'file':6A 'form':2A 'lead':9A 'plugin':4A 'unauthent':5A 'upload':7A","search_b":"'6.2.4':37B '7':23B,33B 'apach':19B,80B 'arbitrari':68B 'check':40B 'cleanup':57B 'code':93B 'contact':21B,31B 'contact-form':20B 'debian':77B 'disk':61B 'execut':88B,94B 'extens':44B 'field':51B 'file':46B,50B,56B,69B,83B 'form':22B,32B,49B 'found':86B 'give':91B 'host':28B 'leav':58B 'nginx':24B 'packag':25B 'php':90B 'plant':66B 'plugin':35B 'remot':92B 'self':27B 'self-host':26B 'setup':81B 'site':72B 'stock':76B 'temporari':55B 'temporary-fil':54B 'type':42B 'ubuntu':79B 'unauthent':63B 'upload':47B 'visitor':64B 'wordpress':29B,34B","search_c":"'6.2.4':102C '7':98C 'activ':205C 'allow':133C 'apach':149C,181C 'arbitrari':138C,192C 'cleanup':126C 'code':173C 'configur':150C,177C 'contact':96C 'content':154C,206C 'debian':146C 'directori':153C,198C 'disk':132C 'enabl':185C 'execut':169C,174C 'extens':109C 'field':117C 'file':111C,116C,125C,130C,139C,164C,193C 'flaw':120C 'form':97C,115C 'handler':161C 'htaccess':183C 'html':209C 'includ':178C 'issu':187C 'lead':170C 'leav':127C 'limit':189C 'list':152C 'locat':167C 'map':156C 'may':200C 'nginx':179C 'origin':217C 'overrid':184C 'phar':157C 'php':160C 'plugin':100C 'remot':172C 'serv':203C 'site':142C,214C 'still':201C 'stock':145C 'store':163C 'svg':211C 'temporari':124C 'temporary-fil':123C 'type':107C 'ubuntu':148C 'unauthent':134C 'upload':112C,129C,137C,197C 'user':135C 'valid':105C 'wordpress':99C 'written':194C","cause_entry":null,"cause_path":null,"first_public_at":"2026-11-08T06:17:04+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-114432","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-114432","severity":null,"published_at":"2026-11-08T06:17:04+00:00","modified_at":"2026-11-08T06:17:04+00:00","first_seen_at":"2026-11-08T06:46:21+00:00","fetched_at":"2026-11-08T06:46:21+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"}