Description
The Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 3.0.2. This is due to insufficient validation of multi-file upload chunk state in the `GFAsyncUpload::upload()` function, where public form state URL hashes can be reused as chunk continuation hashes and attacker-controlled temporary filenames are accepted before sanitization. This makes it possible for unauthenticated attackers, when a public form contains a File Upload field with Multiple Files enabled, to upload a valid PNG/PDF polyglot to an attacker-selected public `.php` or `.html` filename in the Gravity Forms temporary upload directory. This can lead to remote code execution on WordPress systems that use NGINX or other non `.htaccess` respecting web servers. NOTE: During installation and activation, the Gravity Forms plugin places a `.htaccess` file in this directory, which prevents this vulnerability from being exploited despite the PHP file being written to the temporary upload directory. In these cases where PHP execution is blocked, attacker-written HTML can result in stored same-origin cross-site scripting if a victim visits the generated file URL.
Published: 2026-09-01
Score: 8.1 High
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Apply Patch
AI Analysis

Impact

The Gravity Forms plugin for WordPress allows unauthenticated users to upload files when a public form contains a File Upload field with Multiple Files enabled. An attacker can reuse the public form state URL hash as a chunk continuation hash, bypassing validation in GFAsyncUpload::upload(). This permits uploading a valid PNG/PDF polyglot with an attacker‑chosen .php or .html filename into the temporary upload directory. Because the uploaded file is not sanitized before storage, the vulnerability is a classic arbitrary file upload flaw (CWE‑434) that can lead to remote code execution on servers that serve the temporary upload directory without execution restrictions, such as NGINX or other non‑.htaccess‑respecting stacks. If PHP execution is blocked, an attacker can still place an HTML file that triggers same‑origin stored XSS when opened.

Affected Systems

All installations of Gravity Forms version 3.0.2 or earlier that expose a publicly accessible form with a File Upload field configured for Multiple Files are affected. The plugin creates a temporary upload directory upon activation, and the flaw resides in the upload routine; it does not depend on other WordPress settings beyond the presence of that directory. Systems that remove or rename the default .htaccess file in that directory are at greater risk, as the protective rule is absent.

Risk and Exploitability

The flaw carries a CVSS score of 8.1, indicating high severity. The EPSS score is not reported, but the lack of authentication requirements and broad distribution make it likely to be abused. It is not yet catalogued in CISA’s KEV list. Exploitation requires only a crafted multi‑file upload to a permissive public form, after which an attacker can achieve RCE if the server permits execution from the temporary upload directory, or stored XSS if execution is blocked. The combination of high impact and low attack effort warrants immediate remediation.

Generated by OpenCVE AI on September 1, 2026 at 15:55 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to Gravity Forms 3.0.3 or later to resolve the arbitrary file upload flaw.
  • If an upgrade cannot be performed immediately, remove or disable the File Upload field from public forms or disable the Multiple Files option to eliminate the upload vector.
  • Ensure the temporary upload directory does not allow execution of uploaded files by keeping the default .htaccess file or by configuring the web server to deny PHP execution in that directory.

Generated by OpenCVE AI on September 1, 2026 at 15:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 01 Sep 2026 15:00:00 +0000

Type Values Removed Values Added
First Time appeared Gravityforms
Gravityforms gravity Forms
Wordpress
Wordpress wordpress
Vendors & Products Gravityforms
Gravityforms gravity Forms
Wordpress
Wordpress wordpress

Tue, 01 Sep 2026 13:45:00 +0000

Type Values Removed Values Added
Description The Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 3.0.2. This is due to insufficient validation of multi-file upload chunk state in the `GFAsyncUpload::upload()` function, where public form state URL hashes can be reused as chunk continuation hashes and attacker-controlled temporary filenames are accepted before sanitization. This makes it possible for unauthenticated attackers, when a public form contains a File Upload field with Multiple Files enabled, to upload a valid PNG/PDF polyglot to an attacker-selected public `.php` or `.html` filename in the Gravity Forms temporary upload directory. This can lead to remote code execution on WordPress systems that use NGINX or other non `.htaccess` respecting web servers. NOTE: During installation and activation, the Gravity Forms plugin places a `.htaccess` file in this directory, which prevents this vulnerability from being exploited despite the PHP file being written to the temporary upload directory. In these cases where PHP execution is blocked, attacker-written HTML can result in stored same-origin cross-site scripting if a victim visits the generated file URL.
Title Gravity Forms <= 3.0.2 - Unauthenticated Arbitrary File Upload via State/Chunk Hash Confusion
Weaknesses CWE-434
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Subscriptions

Gravityforms Gravity Forms
Wordpress Wordpress
cve-icon MITRE

Status: PUBLISHED

Assigner: Wordfence

Published:

Updated: 2026-09-01T14:55:52.958Z

Reserved: 2026-08-11T02:17:15.838Z

Link: CVE-2026-19513

cve-icon Vulnrichment

Updated: 2026-09-01T14:17:06.727Z

cve-icon NVD

Status : Deferred

Published: 2026-09-01T14:17:27.187

Modified: 2026-09-01T20:47:54.130

Link: CVE-2026-19513

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T16:00:13Z

Weaknesses
  • CWE-434

    Unrestricted Upload of File with Dangerous Type