Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit form with crafted script payload
-
DeliveryPayload stored by Ninja Forms
-
ExploitAdmin opens submissions in wp-admin
-
ExecutionScript executes in admin session
-
ImpactHijack session / perform admin actions
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the attacker's script payload be persisted by Ninja Forms (stored XSS) and that a privileged user - typically a WordPress administrator - subsequently views the stored content in a context where the plugin renders it without proper output neutralization; this victim interaction (UI:R) is the key limiting factor. The description does not name a specific non-default configuration or feature toggle, so it appears to affect standard Ninja Forms deployments on versions up to 3.15.5, but the exact vulnerable field/submission view is not specified in the available data. The dependency on an administrator opening the malicious entry, rather than automatic firing, meaningfully constrains real-world reliability. |
| Impact | This is a stored (persistent) cross-site scripting flaw (CWE-79) in the Ninja Forms WordPress plugin, affecting versions up to and including 3.15.5. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L, base 7.1 High) indicates a network-reachable, low-complexity issue requiring no attacker privileges but requiring victim user interaction, with a scope change and limited confidentiality, integrity and availability impact - the classic profile of stored XSS where unauthenticated input is persisted and later rendered in a privileged context (e.g., an admin viewing submissions). Exploitation status: no public exploit identified at time of analysis - the only source is a Patchstack database/advisory entry, with no CISA KEV listing, no POC flag, and no EPSS score provided, so there is no evidence of active exploitation and the real-world urgency is moderate rather than critical. The PR:N/UI:R combination is self-consistent with an unauthenticated attacker planting a payload that fires when a logged-in administrator reviews the stored data. No EPSS or KEV data was provided to corroborate or contradict the CVSS; absent those signals, prioritize this as a standard 'patch on next maintenance cycle' item for affected sites, elevated only by the plugin's large install base and the fact that form plugins routinely accept untrusted public input. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a Ninja Forms form (or otherwise supplies form-related input) containing a malicious script payload that is stored by the plugin. When a WordPress administrator later views the submitted data in the wp-admin dashboard, the script executes in their authenticated browser session, enabling session/cookie theft, admin actions on their behalf, or injection of further web content. No public exploit code has been identified, but the low attack complexity and lack of required privileges make weaponization straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Stored cross-site scripting in the WordPress plugin Ninja Forms affects all versions through 3.15.5, allowing remote unauthenticated attackers to submit crafted form input that is later rendered without proper neutralization when an administrator views the stored entry, at which point the injected script executes in the privileged user's browser session. The flaw is rated CVSS 7.1 (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L); the requirement that a victim interact with the stored content is the primary limiting factor, and no public exploit code or confirmed active exploitation was identified at time of analysis. Impact is bounded to confidentiality, integrity and availability of the administrative session and whatever that session can reach, but the scope change (S:C) means the malicious script can affect resources beyond the plugin itself, such as the wider wp-admin context.
RemediationAI
No vendor-released patch or fixed version is identified in the available data, so remediation at time of analysis is compensating-control driven. The strongest immediate step is to confirm whether a newer Ninja Forms release than 3.15.5 has been published and, if so, upgrade to it and re-validate stored entries; monitor the Patchstack advisory at https://patchstack.com/database/wordpress/plugin/ninja-forms/vulnerability/wordpress-ninja-forms-plugin-3-15-5-cross-site-scripting-xss-vulnerability for the patched version number. Where the plugin must remain on 3.15.5, reduce the attack surface by restricting which forms accept anonymous submissions and by disabling or password-protecting non-essential public forms - the trade-off is lost lead capture or user input on those forms. Harden the administrative path: enforce least privilege so that only trusted accounts hold entry-review capabilities, require strong authentication for wp-admin, and restrict wp-admin access by IP allowlist or VPN, accepting the operational cost of reduced mobility for administrators. Deploy virtual patching at the WAF or reverse proxy to reject or encode HTML/script markup in POST bodies to Ninja Forms submission endpoints and to block inline script in admin responses, understanding that generic XSS rules may cause false positives on legitimate rich-text submissions. As a stopgap, export needed entries and temporarily deactivate the plugin when forms are not actively in use, since deactivation removes both the injection surface and the rendering context at the cost of losing live form functionality. Finally, review existing stored submissions for suspicious markup, since any payload planted before mitigation remains dormant until viewed.
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 form-building plugin for WordPress (CPE cpe:2.3:a:kevin_stover:ninja_forms), and the vulnerability is a classic CWE-79 improper neutralization of input during web page generation in its persistent form. Form submissions are accepted from anonymous, unauthenticated visitors (PR:N in the vector) and stored in the WordPress database; the defect arises when those stored values are later emitted into HTML in administrative contexts, such as entry/submission listings and detail views, without context-appropriate output encoding or escaping. Because the payload is persisted rather than reflected, exploitation is decoupled in time from delivery: the attacker submits the malicious field value once, and the script fires whenever a privileged user - typically a WordPress administrator reviewing form entries - loads the affected page. The changed-scope rating (S:C) reflects that the executing script runs with the privileges of the viewing user and can act on the broader WordPress installation, not merely the plugin's own security context. The available data does not identify the precise form field or rendering view that lacks escaping, so it should be assumed that standard Ninja Forms deployments on versions up to and including 3.15.5 expose the weakness wherever submissions are displayed back to administrators.
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
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
Network-reachable unauthenticated input (AV:N/PR:N) with low complexity, but payload fires only when an admin views stored data (UI:R), and script execution in another security context yields S:C with limited C/I/A.
Primary rating from Vendor (Patchstack).
CVSS VectorVendor: Patchstack
DescriptionCVE.org
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Kevin Stover Ninja Forms ninja-forms allows Stored XSS.This issue affects Ninja Forms: from n/a through 3.15.5.
Executive ViewAI
Ninja Forms versions through 3.15.5 expose WordPress administrative sessions to stored cross-site scripting, meaning a crafted public form submission could execute in a privileged administrator’s browser and potentially reach resources beyond the plugin. Leadership should care because compromise of an admin session can undermine site integrity, data confidentiality, and trust in the WordPress estate, even though no public exploit was identified at time of analysis and successful abuse requires administrator interaction.
No vendor-released patch identified at time of analysis; interim mitigations include disabling Ninja Forms or blocking public form submissions, enforcing MFA and least privilege for wp-admin users, restricting wp-admin access, deploying WAF/virtual patching to sanitize stored form input, monitoring admin sessions, and reviewing stored entries.
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
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
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-107137
GHSA-ww28-j4j5-3mp6
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB