Gravity Forms <= 2.10.4 - Unauthenticated Arbitrary File Read via 'gform_uploaded_files' Parameter
Strategic Overview
- Status
- Patched in 2.10.5
- Affected Plugin
- Gravity Forms
- Affected Version
<= 2.10.4- CVSS
- 7.5High
- Weakness type
- CWE-22 · Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
- CVE
CVE-2026-12997
At a glance
CVE-2026-12997 is a high-severity Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') vulnerability in the Gravity Forms WordPress plugin, affecting versions <= 2.10.4. It carries a CVSS score of 7.5 (reachable over the network; low attack complexity; high confidentiality impact). Exploitation requires no authentication. The issue is fixed in version 2.10.5; sites on affected versions should update now. Disclosed July 2026, reported by daroo.
Vulnerability Overview
The Gravity Forms plugin for WordPress is vulnerable to Directory Traversal in all versions up to, and including, 2.10.4 via the 'gform_uploaded_files' parameter parameter. This makes it possible for unauthenticated attackers to read the contents of arbitrary files on the server, which can contain sensitive information. Exploitation requires the targeted form to not enforce login (so publicly accessible), which allows the unauthenticated attacker to reach the process_send_resume_link endpoint and supply an arbitrary recipient email address to receive the traversal-retrieved file as a notification attachment.
Technical Analysis
The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no privileges on the target site, and no interaction from a victim user. A successful exploit has high impact on confidentiality.
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Gravity Forms <= 2.10.4 carries this weakness at gform_uploaded_files, and reaching it takes no account at all. Path traversal happens when user-controlled text is used to build a filesystem path without being constrained to an intended directory, so sequences like ../ walk the resolved path somewhere else.
Depending on the operation, it means reading files outside the intended folder — wp-config.php being the usual target — or writing to and deleting paths the web server can touch. For Gravity Forms the fix is 2.10.5: builds <= 2.10.4 are affected, anything from 2.10.5 onward is not.
Remediation
Update to version 2.10.5, or a newer patched version
How does WordSec protect against this?
Requests carrying this pattern arrive without a session, so nothing upstream of the firewall gets a chance to reject them: WordSec's web application firewall inspects request payloads before WordPress loads them. None of that substitutes for the fix: Gravity Forms 2.10.5 closes this, and updating the plugin is the step that ends it.
- Firewall
- Login Security
- Alerts
External References
Related records
Same weakness class
Other vulnerabilities in Gravity Forms
- 9.8CVE-2025-13407: Gravity Forms <= 2.9.23.0 Arbitrary File Upload
CVE-2025-13407 - 9.8CVE-2025-12352: Gravity Forms <= 2.9.20 Arbitrary File Upload
CVE-2025-12352 - 9.8CVE-2023-28782: Gravity Forms <= 2.7.3 PHP Object Injection
CVE-2023-28782 - 9.8Gravityforms <= 1.8.19 Arbitrary File Upload
- 9.1CVE-2015-2260: Gravityforms <= 1.9.3.5 SQL Injection
CVE-2015-2260 - 8.1CVE-2026-19513: Gravity Forms <= 3.0.2 Arbitrary File Upload
CVE-2026-19513 - 8.1CVE-2025-12974: Gravity Forms <= 2.9.21.1 Arbitrary File Upload
CVE-2025-12974 - 7.5CVE-2020-13764: Gravityforms <= 2.4.8 Information Exposure
CVE-2020-13764
Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C