Skip to main content

Ninja Forms CVE-2026-110899

| EUVDEUVD-2026-107137 HIGH
Cross-site Scripting (XSS) (CWE-79)
2026-10-21 Patchstack GHSA-ww28-j4j5-3mp6
7.1
CVSS 3.1 · Vendor: Patchstack
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Submit form with crafted script payload
  2. Delivery
    Payload stored by Ninja Forms
  3. Exploit
    Admin opens submissions in wp-admin
  4. Execution
    Script executes in admin session
  5. Impact
    Hijack 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Ninja Forms 0 ≤3.15.5

Affected Packages

euvd ninja_forms no fix

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

Vendor (Patchstack) PRIMARY 7.1 HIGH
AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
vuln.today AI 7.1 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:L/SI:L/SA:N

Primary rating from Vendor (Patchstack).

CVSS VectorVendor: Patchstack

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
Low

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.1%
Top 97% exploitable
Prevalence
High
Ninja Forms is a very widely deployed WordPress form plugin (millions of installs)
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2016-1209 CRITICAL POC
9.8 May 14

The Ninja Forms plugin before 2.9.42.1 for WordPress allows remote attackers to conduct PHP object injection attacks via

CVE-2026-92438 HIGH POC
8.8 Sep 22

Stored cross-site scripting in the Ninja Forms WordPress plugin 3.15.3 lets an unauthenticated visitor plant a script pa

CVE-2021-24163 HIGH POC
8.8 Apr 05

The AJAX action, wp_ajax_ninja_forms_sendwp_remote_install_handler, did not have a capability check on it, nor did it ha

CVE-2018-16308 HIGH POC
8.6 Sep 01

The Ninja Forms plugin before 3.3.14.1 for WordPress allows CSV injection. Rated high severity (CVSS 8.6), this vulnerab

CVE-2026-91827 HIGH POC
7.5 Sep 22

PHP Object Injection in the Ninja Forms WordPress plugin 3.15.3 allows unauthenticated attackers to plant serialized pay

CVE-2022-2903 HIGH POC
7.2 Sep 26

The Ninja Forms Contact Form WordPress plugin before 3.6.13 unserialises the content of an imported file, which could le

CVE-2021-24889 HIGH POC
7.2 Nov 29

The Ninja Forms Contact Form WordPress plugin before 3.6.4 does not escape keys of the fields POST parameter, which coul

CVE-2021-34647 MEDIUM POC
6.5 Sep 22

The Ninja Forms WordPress plugin is vulnerable to sensitive information disclosure via the bulk_export_submissions funct

CVE-2024-7354 MEDIUM POC
6.1 Sep 02

The Ninja Forms WordPress plugin before 3.8.11 does not escape an URL before outputting it back in an attribute, leading

CVE-2023-37979 MEDIUM POC
6.1 Jul 27

Unauth. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no authentication required, low at

CVE-2023-1835 MEDIUM POC
6.1 May 15

The Ninja Forms Contact Form WordPress plugin before 3.6.22 does not properly escape user input before outputting it bac

CVE-2021-24165 MEDIUM POC
6.1 Apr 05

In the Ninja Forms Contact Form WordPress plugin before 3.4.34, the wp_ajax_nf_oauth_connect AJAX action was vulnerable

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy