Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocate public Ninja Forms form
-
DeliverySubmit field value with stored XSS payload
-
ExploitPayload persisted unescaped in submission
-
ExecutionAdmin opens submission edit screen
-
PersistScript executes in admin browser
-
ImpactHijack admin session / create rogue admin
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 | Requires the target WordPress site to run Ninja Forms 3.15.3 with at least one publicly accessible form; the attacker submits a script payload into a form field that is stored without output escaping. Execution is NOT automatic on submission - it is gated by required user interaction (UI:R): a high-privileged user (administrator) must open the malicious submission on the admin submission-edit screen for the script to run in their authenticated session. No authentication is needed to plant the payload (PR:N), but the impact depends on an admin reviewing submissions, which is the normal operational workflow, making the gate weak in practice. |
| Impact | This is a stored (persistent) cross-site scripting flaw: an unauthenticated attacker submits a malicious payload through a public Ninja Forms form, and the script executes when a high-privileged administrator opens that submission on the admin edit screen. The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H = 8.8) captures the unauthenticated network delivery and the required admin interaction, but the C:H/I:H/A:H with S:U appears over-scoped for a reflected/stored XSS payload - XSS impact is normally partial (C:L/I:L) with a scope change (S:C) because the script executes in the victim admin's browser context rather than granting direct full compromise; a realistic base score is closer to ~6.1. The signals are mixed: a public exploit reference exists (WPScan advisory), which raises practical concern, but there is NO CISA KEV listing and no EPSS score supplied, so there is no evidence of widespread automated exploitation. The real-world risk is meaningfully gated by UI:R - an admin must actually review the attacker's submission - but because reviewing form submissions is the normal workflow for this plugin, that gate is weak in practice and admin-context XSS can escalate to session/account takeover. Net: a genuine priority for sites running the affected version, but the vendor's 8.8 likely overstates raw technical impact. |
| Exploit ScenarioDerived | An attacker fills out any public-facing Ninja Forms form on the target WordPress site, placing a JavaScript payload (e.g., an <img onerror> or <script> string) into a text field that is stored without output escaping. When a site administrator later opens that submission on the admin submission-edit screen to review it, the payload executes in the admin's authenticated browser session, enabling actions such as anti-CSRF token theft, admin session hijacking, or creation of a rogue admin account. A public exploit/advisory is available via WPScan, lowering the barrier to reproduction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 22, 2026
Stored cross-site scripting in the Ninja Forms WordPress plugin 3.15.3 lets an unauthenticated visitor plant a script payload inside any publicly accessible form field, which the plugin then renders unescaped on the admin submission-edit screen so it executes in the browser of the high-privileged user who opens that submission. Execution is not automatic: an administrator must review the malicious submission (UI:R), but reviewing submissions is the normal operational workflow, so that interaction gate is weak in practice, and an unauthenticated attacker can plant the payload at will (PR:N). Publicly available exploit code exists and the issue was reported by WPScan; the provided data contains no CISA KEV listing or EPSS score, so there is no confirmation of active exploitation, and our independent assessment rates the impact as changed-scope XSS with low confidentiality and integrity loss and no availability loss, rather than the higher 8.8 score carried alongside the CVE record.
RemediationAI
No vendor-released fixed version is identified anywhere in the provided data, so the first action is to check the Ninja Forms release history and the WPScan advisory at https://wpscan.com/vulnerability/eeed1378-2c51-4d38-9dda-4a13ce330b25/ (the reference tagged as the exploit source) for a patched release newer than 3.15.3, and upgrade the plugin as soon as such a release is confirmed; if the plugin cannot be updated immediately, treat mitigation as temporary and re-check weekly. Compensating controls, with their trade-offs: unpublish or delete public-facing forms that are not business-critical, understanding this removes legitimate lead-capture or contact functionality; restrict access to the WordPress admin submission screens (IP allowlist, HTTP auth in front of /wp-admin, or a VPN) so a reviewing administrator cannot be reached by an attacker-crafted submission while browsing, at the cost of admin convenience and possible breakage of remote workflows; deploy a WAF rule that blocks script and event-handler markup in POST bodies destined for Ninja Forms submission endpoints, accepting potential false positives that reject legitimate submissions containing angle brackets; and enforce a Content-Security-Policy on /wp-admin/ with script-src and object-src restricted to trusted origins, which reduces inline script execution but can break other admin-side JavaScript plugins if the policy is too strict. CAPTCHA or login-gating forms does not remediate this class of bug, because the payload is persisted in the database, so after patching also purge or review existing stored submissions for injected markup before restoring normal review workflows; rotating administrator sessions and forcing re-authentication after cleanup limits the value of any session tokens an attacker may already have captured.
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
This is a persistent (stored) cross-site scripting flaw in a WordPress plugin. Ninja Forms stores values submitted through its public front-end forms in the WordPress database, and version 3.15.3 fails to escape those stored field values before echoing them back on the administrator-facing submission edit screen, so markup such as a script tag submitted as ordinary form input is re-rendered as live HTML/JavaScript rather than inert text. No CWE identifier was supplied with the CVE record, but the root cause class is improper neutralization of user-controlled input during output generation (the CWE-79 / output-encoding family); the correct fix is contextual output escaping (for example esc_html/esc_attr on the submission values) at render time. The two data points in this case are worth separating: the CVSS 3.1 vector supplied with the record (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H) describes an unchanged-scope compromise, while our independent assessment (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N) treats it as changed-scope XSS because the injected JavaScript runs in the security context of an authenticated administrator rather than the unauthenticated submitter, with the practical impact bounded to that administrator's browser session (cookie/session abuse, actions performed as the admin) rather than direct server compromise, and no availability impact. The provided CPE, cpe:2.3:a:unknown:ninja_forms:*:*:*:*:*:*:*:*, leaves the vendor field as "unknown" and the version as a wildcard, so it does not establish a bounded affected range; only version 3.15.3 is explicitly named in the description and the WPScan advisory. Exploitation prerequisites are a site running that plugin version, at least one publicly reachable form, and an administrator who later opens the tainted submission.
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:U/C:H/I:H/A:H
Unauthenticated stored XSS delivered via public form (PR:N/AV:N) but requiring an admin to view the submission (UI:R); script escapes plugin authority into the browser (S:C) with partial C/I and no availability impact.
Primary rating from Vendor (WPScan).
CVSS VectorVendor: WPScan
Lifecycle Timeline
2DescriptionCVE.org
The Ninja Forms WordPress plugin 3.15.3 does not escape submitted form field values before outputting them on the submission edit screen in the admin area, which could allow unauthenticated users to submit values through a public form that then execute in the browser of any high-privileged user who reviews the submission.
Articles & Coverage 1
Technical POC Analysis
Evidence base: the WPScan vulnerability entry (WPVDB ID eeed1378-2c51-4d38-9dda-4a13ce330b25) and the CVE record metadata.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Organizations running the WordPress plugin Ninja Forms 3.15.3 face a high-severity stored cross-site scripting exposure that lets an unauthenticated visitor inject a script payload into public form fields, which then executes in the browser of an administrator who opens the affected submission as part of routine review. Publicly available exploit code exists, although there is no confirmation of active exploitation (no CISA KEV listing or EPSS score provided), and no vendor-released patch identified at time of analysis. Leadership should care because an attacker could compromise a high-privilege WordPress administrator's session or browser context, potentially enabling broader site, data, or operational compromise.
No vendor-released patch identified at time of analysis; interim mitigations include deactivating or removing Ninja Forms 3.15.3 where feasible, restricting or disabling public form submissions, applying virtual patching or WAF rules if available, enforcing least privilege and multi-factor authentication for WordPress administrators, using a restrictive Content Security Policy, and reviewing submissions and admin sessions in a hardened or isolated browser.
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
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
An open redirect in the Ninja Forms plugin before 3.3.19.1 for WordPress allows Remote Attackers to redirect a user via
EUVD-2026-84282
GHSA-x4cv-hqr7-5rcm
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB