ZeroHour

CVE-2026-19769

large

Unauthenticated Stored XSS in Ninja Forms WordPress Plugin via Repeater Type Confusion

CVSS 3.1
7.2 high
EPSS
<1%p16
Published
()
Modified
AI analysis

The Ninja Forms contact form plugin for WordPress, in all versions up to and including 3.15.1, fails to adequately sanitize and escape a Repeater field's child 'type' value, letting an unwhitelisted array key pass through as a 'type confusion'. An unauthenticated attacker submits a crafted form submission that routes this unwhitelisted child entry through the File Uploads add-on handler, which writes an attacker-supplied HTML file containing arbitrary JavaScript into any web-server-writable directory, including the site root. Because the file is served from the site's own origin, the injected web script executes whenever a user accesses the injected page, allowing script injection in visitors' browsers. Only sites running Ninja Forms up to 3.15.1 with the File Uploads add-on active are exploitable. There is currently no known exploitation, no public proof-of-concept, and the flaw is not listed in CISA KEV, with a low EPSS probability of exploitation in the next 30 days.

What to do: Update Ninja Forms to the first release newer than 3.15.1 as soon as a patched version is published; no fixed version number is confirmed in the available data. Sites that cannot patch immediately should deactivate the Ninja Forms File Uploads add-on, since exploitation requires it, and check web-writable directories (including the site root and uploads folders) for unexpected or recently written HTML files that could contain injected scripts.

Affected
Ninja Forms – The Contact Form Builder That Grows With You (WordPress plugin)all versions up to and including 3.15.1 (exploitation additionally requires the Ninja Forms File Uploads add-on to be active)
Estimated exposure
large≈300,000 WordPress sites (plugin active-install count), with actual exploitability limited to the subset running the File Uploads add-on — The estimate is based on the plugin's ~300,000 active installs reported on wordpress.org, narrowed in practice because exploitation only works where the File Uploads add-on is enabled.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

The Ninja Forms – The Contact Form Builder That Grows With You plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Repeater Child 'type' Confusion via Unmatched Array Key in all versions up to, and including, 3.15.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. Exploitation requires the Ninja Forms File Uploads add-on to be active, as the attack routes the unwhitelisted child entry through the File Uploads handler to write an attacker-supplied HTML file containing arbitrary JavaScript into any web-server-writable directory, including the site root, where it is served from the site's own origin.

Ecosystems
WordPress
Weakness
CWE-79
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N

In the news

No ingested article mentions this CVE yet.