CVE-2026-103039Gravity Forms Insecure Deserialization
Gravity Forms <= 3.1.2 - Unauthenticated PHP Object Injection via Post Custom Field
Published Oct 30, 2026 · Updated Oct 30, 2026 · Also known as EUVD-2026-113740, GHSA-635p-78xg-j6w3, WORDFENCE-ec1fba15-81e5-42e3-9154-1978c3f81b26, ec1fba15-81e5-42e3-9154-1978c3f81b26
Key Facts
Patch immediately- CVE-2026-103039 is a critical-severity vulnerability (CVSS 9.8 v3.1) affecting gravityforms (wordpress-plugin), Gravity Forms.
- It is exploited in the wild, listed in Industry KEV feed since Oct 30, 2026. No public exploit code is known.
- EPSS estimates a 0.5% probability of exploitation in the next 30 days.
- Fixed versions are available, including gravityforms 3.1.3.
- Brandefense priority: patch immediately, because it is listed as exploited in the wild.
Scores
CVSS v3.1
9.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
EPSS (30-day exploit likelihood)
0.5%
Higher than 43.3% of all scored CVEs
Exploit maturity
Exploited (KEV)
ATLAS score
53/100
Publication score, see How it works
Exploitation Verdict
KEV listed
Oct 30, 2026
0 days after publication
Federal due date
None
No federal due date
Ransomware use
Not reported
Attributed actors
None named
Exploit & Defence Guidance
Exploit maturity
Exploited (KEV)
Public exploit code
0
Proof-of-concept links
In-the-wild evidence
1
Reports of active use
Advisories And Exploit References
Description
The Gravity Forms plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.1.2 via a Post Custom Field whose input type is List. This is due to GFFormsModel::create_post() passing the submitted value to WordPress' unrestricted global maybe_unserialize() rather than the plugin's own hardened GFCommon::maybe_unserialize(), which was added in 3.1.1 and passes allowed_classes => false precisely to prevent object instantiation. Where the field has a content template enabled, the submitted row reaches that call verbatim.
This makes it possible for unauthenticated attackers to inject a PHP object into post meta. No PHP Object Injection gadget chain is present in the plugin itself; however, if a gadget chain is present via an additional plugin or theme, it could allow the attacker to perform actions such as remote code execution. Where the custom field is mapped to the protected _wp_page_template meta key, WordPress itself supplies the chain: validate_file() accepts non-scalars, WP_Theme::__toString() then resolves an attacker-controlled path, and on hosts with a readable PEAR install and register_argc_argv enabled this yields remote code execution.
Known-Exploited Catalog Listings
| Catalog | Added | Remediation due | Ransomware use |
|---|---|---|---|
| Industry KEV feed | Oct 30, 2026 | n/a | Not reported |
Affected Products
3 affected entries in total| Product | Affected versions | Fixed in |
|---|---|---|
| gravityformswordpress-plugin | See advisory | 3.1.3 |
| Gravity Forms | See advisory | n/a |
Patched Releases
gravityforms
3.1.3
Timeline
Publicly disclosed
Oct 30, 2026
Added to Industry KEV feed
Oct 30, 2026
Weakness Type
- CWE-502 Deserialization of Untrusted Data
FAQ
Common Questions.
The Gravity Forms plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.1.2 via a Post Custom Field whose input type is List.
Affected: gravityforms (wordpress-plugin); Gravity Forms. The full list is in the CVE brief.
It is exploited in the wild, listed in Industry KEV feed since Oct 30, 2026.
No, it is not currently listed in the CISA Known Exploited Vulnerabilities catalog.
No public exploit code is known.
Fixed versions are available, including gravityforms 3.1.3.
Brandefense priority: patch immediately, because it is listed as exploited in the wild.
Is CVE-2026-103039 On Your Attack Surface?
Brandefense matches it against the products discovered on your perimeter and opens a finding the day a CVE like this is listed.
Request A Demo