Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted formula via nf_ajax_submit
-
DeliveryPayload stored in list field unescaped
-
ExploitAdmin exports submissions to CSV
-
ExecutionSpreadsheet opens file and runs formula
-
ImpactCode/data action on admin workstation
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V1 - Encoding and Sanitization CSV injection prevention
|
| Exploitation Conditions | Requires Ninja Forms for WordPress prior to 3.15.4 with a form containing at least one Checkbox List, Multi-Select List, Image List, Country, or State field reachable via the unauthenticated nf_ajax_submit endpoint; the attacker submits a crafted spreadsheet formula value (e.g. a payload beginning with =, +, -, or @) that NF_Abstracts_List's fall-through validate() fails to escape. The decisive limiting factor is that the payload is harmless data until an administrator downloads the exported submissions file and opens it in a spreadsheet application that evaluates formulas (UI:A); it never executes on the web server itself. No authentication is needed to plant the payload (PR:N), but realistic impact depends entirely on administrator export behavior and spreadsheet formula-execution settings. |
| Impact | This is a moderate-severity, interaction-dependent issue rather than a drop-everything emergency. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A, base 5.1) tells a consistent story: the initial malicious submission is remote, low-complexity and unauthenticated (the nf_ajax_submit endpoint is public by design), but exploitation only completes through Active user interaction (UI:A) - an administrator must export and open the submissions file. Note the vulnerable-system impacts are all None (VC:N/VI:N/VA:N); the entire C/I/A impact lands on a subsequent system (SC:L/SI:L/SA:L), i.e. the administrator's workstation/spreadsheet, which is exactly what you expect from CWE-1236 CSV formula injection. No EPSS score was provided, there is no CISA KEV listing, and the input shows no confirmed working exploit code - only a VulnCheck advisory reference. The vendor-assigned priority is 'this_month' (not act_now/emergency), which aligns with the picture: a widely deployed plugin (raising exposure) but a limited-impact, interaction-gated flaw. Treat this as a scheduled-patch item that is elevated by the product's large install base rather than by any evidence of mass exploitation. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a Ninja Forms entry through the public nf_ajax_submit endpoint, placing a spreadsheet formula payload into a Checkbox List, Multi-Select List, Image List, Country, or State field, which skips the CSV escaping applied only to Textbox/Textarea fields. The payload sits inert in the stored submissions until a site administrator exports the entries and opens the resulting CSV in a spreadsheet application, at which point the formula executes in the admin's context. No public exploit identified at time of analysis; a VulnCheck advisory reference exists but is not verified as working exploit code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
CSV formula injection in the Ninja Forms plugin for WordPress before 3.15.4 lets unauthenticated attackers plant crafted spreadsheet payloads inside form submissions, which are then evaluated when an administrator exports submissions and opens the file in a spreadsheet application. Requests go through the unauthenticated nf_ajax_submit endpoint to list-type fields (Checkbox List, Multi-Select List, Image List, Country, State), whose NF_Abstracts_List validate() method only enforces required-field presence and never applies the CSV escaping reserved for Textbox and Textarea fields. The vulnerability requires administrator interaction to become dangerous (UI:A) and does not execute on the web server itself; no public exploit code has been identified at time of analysis and the issue is not in CISA KEV, so it is a moderate-severity, interaction-dependent risk rather than an emergency.
RemediationAI
Update the Ninja Forms plugin to version 3.15.4 or later, which is the vendor-released patch that adds proper server-side validation and CSV escaping for list-type fields; the change is documented in the plugin changelog at https://wordpress.org/plugins/ninja-forms/#developers and described in the VulnCheck advisory at https://www.vulncheck.com/advisories/ninja-forms-wordpress-plugin-server-side-validation-bypass-via-list-fields. Where updating must be staged, compensating controls include removing or temporarily replacing Checkbox List, Multi-Select List, Image List, Country, and State fields on publicly exposed forms (side effect: those fields stop collecting legitimate input), and treating every downloaded submissions export as untrusted by opening it in a text editor or import-with-formulas-disabled mode rather than double-clicking it into Excel or Sheets (side effect: adds manual steps to administrator workflows). Reviewing existing exported or stored submissions for cell values beginning with =, +, -, or @ allows triage of payloads already planted through nf_ajax_submit, and restricting or disabling that endpoint at the web server or WAF layer reduces the injection surface but will break front-end form submission for legitimate visitors.
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
The root cause is CWE-1236, CSV Formula Injection: user-controlled data reaches a delimiter-separated export without neutralising leading formula characters such as =, +, -, or @. Ninja Forms implements field-type validation through class hierarchies rooted at NF_Abstracts_List, and the affected list field types inherit a validate() implementation that only checks whether a required field was filled, so arbitrary non-empty values pass server-side validation. The submission path is the nf_ajax_submit AJAX endpoint, which is reachable without authentication, meaning the payload is stored as ordinary submission data. Sanitisation for spreadsheet export is applied only to Textbox and Textarea fields, so values stored against list-type fields are written into the exported CSV verbatim. The decisive constraint is that the payload is inert until an administrator downloads the submissions export and opens it in a spreadsheet application configured to evaluate formulas; nothing executes on the WordPress host, and the resulting impact is bounded by what the administrator's spreadsheet client can be induced to do. The CPE cpe:2.3:a:saturday_drive:ninja_forms:*:*:*:*:*:*:*:* covers all plugin builds below the fixed release.
Know when Ninja Forms 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:L
Unauthenticated remote submission (PR:N) but completion needs an admin to open the export (UI:R); execution crosses into the spreadsheet app (S:C) with limited C/I/A.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Ninja Forms plugin for WordPress before 3.15.4 contains an incomplete server-side validation vulnerability that allows unauthenticated attackers to submit arbitrary values to Checkbox List, Multi-Select List, Image List, Country, and State fields because NF_Abstracts_List falls through to a validate() method that only checks required-field presence. Attackers can submit crafted formula payloads through the unauthenticated nf_ajax_submit endpoint that bypass CSV escaping applied only to Textbox and Textarea fields, resulting in CSV injection when an administrator downloads and opens the exported submissions file.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Ninja Forms
View allThe Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via
Stored cross-site scripting in the Ninja Forms WordPress plugin 3.15.3 lets an unauthenticated visitor plant a script pa
The AJAX action, wp_ajax_ninja_forms_sendwp_remote_install_handler, did not have a capability check on it, nor did it ha
The Ninja Forms plugin before 3.3.14.1 for WordPress allows CSV injection. Rated high severity (CVSS 8.6), this vulnerab
PHP Object Injection in the Ninja Forms WordPress plugin 3.15.3 allows unauthenticated attackers to plant serialized pay
The Ninja Forms Contact Form WordPress plugin before 3.6.13 unserialises the content of an imported file, which could le
The Ninja Forms Contact Form WordPress plugin before 3.6.4 does not escape keys of the fields POST parameter, which coul
The Ninja Forms WordPress plugin is vulnerable to sensitive information disclosure via the bulk_export_submissions funct
The Ninja Forms WordPress plugin before 3.8.11 does not escape an URL before outputting it back in an attribute, leading
Unauth. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no authentication required, low at
The Ninja Forms Contact Form WordPress plugin before 3.6.22 does not properly escape user input before outputting it bac
In the Ninja Forms Contact Form WordPress plugin before 3.4.34, the wp_ajax_nf_oauth_connect AJAX action was vulnerable
EUVD-2026-112137
GHSA-f833-cw2q-6hm3
NVD
CVE.org
Exploit-DB