Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain WordPress administrator credentials
-
DeliveryUpload crafted form JSON via Import/Export panel
-
ExploitTrigger deserialization in WPN_Helper::build_nf_cache()
-
ExecutionInvoke POP chain from co-installed plugin or theme
-
ImpactExecute arbitrary code or delete files on server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires two simultaneous conditions: (1) the attacker must hold a WordPress administrator account (or higher) on the target site, granting access to the form import interface; and (2) at least one other installed plugin or theme on the same WordPress installation must contain a usable POP chain - without this, the deserialized object cannot perform any harmful actions. The deserialization is triggered automatically as part of the form import action in WPN_Helper::build_nf_cache(); no additional interaction is required after the crafted form file is submitted. Sites running Ninja Forms in isolation with no POP-chain-bearing co-plugins are not exploitable. Sites where administrators are trusted and no POP chains are present face effectively zero risk from this specific CVE. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H) yields a score of 6.6, which accurately reflects the compound prerequisites: an attacker must already hold WordPress administrator credentials (PR:H) AND a POP chain-bearing plugin or theme must be present on the target site (AC:H). Without a POP chain, the vulnerability has zero direct impact - this is explicitly stated in the description. Consequently, real-world risk is highly environment-dependent: a default Ninja Forms installation with no vulnerable co-plugins is not at risk, while a site running popular plugins known to contain POP chains (e.g., older WooCommerce, Elementor, or Yoast versions) could face full compromise. No EPSS data was provided; given the PR:H and AC:H constraints, spontaneous mass exploitation is unlikely. No CISA KEV listing and no confirmed public exploit further support treating this as a low-urgency, conditional risk for most deployments. Administrators should nonetheless patch promptly, as admin-level WordPress compromise is achievable through many vectors and a co-installed POP chain may not be immediately obvious. |
| Exploit ScenarioDerived | An attacker who has obtained WordPress administrator credentials - through phishing, credential stuffing, or a prior compromise - navigates to the Ninja Forms Import/Export panel and uploads a crafted form JSON file containing a serialized PHP object with a malicious class name. The import triggers WPN_Helper::build_nf_cache(), which calls $action->get_settings() and deserializes the injected object, invoking the __wakeup or __destruct magic methods of a class provided by a co-installed plugin such as an older WooCommerce version. The resulting POP chain executes attacker-controlled code, allowing file deletion or full server-side code execution under the web server's user context. No public exploit or proof-of-concept code has been confirmed at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 09, 2026
PHP Object Injection in the Ninja Forms WordPress plugin (all versions through 3.14.6) allows authenticated administrators to inject arbitrary PHP objects during the form import process via unsafe deserialization in WPN_Helper::build_nf_cache(). The vulnerability itself carries no inherent impact - exploitation requires a separate POP (Property Oriented Programming) chain supplied by another co-installed plugin or theme. When a POP chain is present, the impact escalates to arbitrary file deletion, sensitive data retrieval, or remote code execution, depending on what the chain enables. No public exploit has been identified at time of analysis, and CISA KEV does not list this CVE.
RemediationAI
Update the Ninja Forms plugin to the version released after 3.14.6, which incorporates the fix referenced in WordPress SVN changeset 3581939 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3581939%40ninja-forms&new=3581939%40ninja-forms). The exact released fixed version number is not independently confirmed from the available data - verify via the WordPress plugin repository changelog or the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/d95427d0-77c6-41d6-93f1-508999e14242. As a compensating control pending upgrade, restrict the WordPress admin form-import feature to the minimum necessary administrators; this raises the bar because PR:H is already required, so limiting who holds admin roles directly reduces attack surface. Auditing co-installed plugins and themes for known POP chains (using tools such as PHPGGC) can confirm whether your environment would be exploitable even if patching is delayed. There are no side effects to restricting form-import access beyond reducing operational convenience for bulk form migration.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Ninja Forms is a widely deployed WordPress contact form builder. The root cause is CWE-502 (Deserialization of Untrusted Data): the form import workflow in ImportForm.php (line 426) and ImportExport.php (line 63) passes attacker-supplied form data through WPN_Helper::build_nf_cache() in Helper.php (line 451), which calls $action->get_settings() on deserialized action objects without sanitization. PHP's unserialize() instantiates attacker-chosen classes and invokes magic methods (__wakeup, __destruct, __toString) as part of object reconstruction, enabling POP chain traversal. The affected CPE is cpe:2.3:a:kstover:ninja_forms_-_the_contact_form_builder_that_grows_with_you:*:*:*:*:*:*:*:* covering all versions up to and including 3.14.6. Code-level evidence is visible across both the 3.14.2 and 3.14.5 SVN tags in the WordPress plugin repository.
Know when PHP gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
Admin credentials required (PR:H) and a co-installed POP chain is a hard prerequisite (AC:H); full C/I/A applies only when both conditions are met.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Ninja Forms - The Contact Form Builder That Grows With You plugin for WordPress is vulnerable to PHP Object Injection in all versions up to, and including, 3.14.6 via deserialization of untrusted input . This makes it possible for authenticated attackers, with administrator-level access and above, to inject a PHP Object. No known POP chain is present in the vulnerable software, which means this vulnerability has no impact unless another plugin or theme containing a POP chain is installed on the site. If a POP chain is present via an additional plugin or theme installed on the target system, it may allow the attacker to perform actions like delete arbitrary files, retrieve sensitive data, or execute code depending on the POP chain present. The deserialization is triggered automatically during form import when WPN_Helper::build_nf_cache() invokes $action->get_settings() immediately after the crafted form is imported, requiring no further interaction beyond the import action itself.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.
In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it
sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not
(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear
The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by
ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C
Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au
Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c
Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re
The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows
The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1
EUVD-2026-74608
GHSA-7jv8-f84m-pq5j
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB