Skip to main content

Ninja Forms Scheduled Exports CVE-2026-87870

| EUVDEUVD-2026-75230 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-10 Wordfence GHSA-vxhj-7whr-2q55
6.4
CVSS 3.1 · Vendor: Wordfence
View

Attack ChainAIDerived

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

  1. Access
    Register subscriber-level WordPress account
  2. Delivery
    Submit crafted REST API request with XSS payload in interval/format/emailTo
  3. Exploit
    Payload stored in database without sanitization
  4. Execution
    Privileged user visits export configuration page
  5. Persist
    Injected script executes in victim browser
  6. Impact
    Attacker captures session token or performs 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: (1) an authenticated WordPress user account at subscriber level or above - the lowest default role, assigned automatically on open-registration sites; (2) the Ninja Forms - Scheduled Exports plugin to be installed and active on the target site at version 3.0.3 or earlier; (3) a victim user (typically an admin) to visit a page that renders the stored export configuration containing the injected payload. Exploitation is limited by the requirement for at least a subscriber account (unavailable on sites with registration fully closed), the need for a victim page visit to trigger script execution, and the plugin being a premium paid add-on with a narrower install base than the core Ninja Forms plugin. The REST endpoint's missing permission_callback means capability checks are absent, but nonce validation is still enforced, confirming that unauthenticated exploitation is not possible.

Impact

The provided CVSS 6.4 (Medium) vector AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N reflects network-accessible exploitation at low privilege with scope change into victim browsers. The UI:N metric is arguably optimistic for stored XSS, which classically requires a victim to visit the injected page (warranting UI:R); this is flagged in confidence notes. Real-world risk is primarily shaped by the privilege bar: WordPress subscriber is the role assigned to anyone who self-registers, so any site with open registration is exploitable without any elevated access. The S:C (scope changed) metric correctly reflects that the payload's impact lands in administrators' or other users' browser sessions, enabling session token theft, credential harvesting, or admin action hijacking. No KEV listing and no public POC lower urgency somewhat, but even a mid-sized municipal IT team in olsztyn running a WordPress site with open registration should treat this as a meaningful remediation priority given how low the entry threshold is. The permission_callback gap is an aggravating factor: if nonce leakage were achievable through other means, the exploitable surface could expand beyond authenticated users.

Exploit ScenarioDerived

An attacker registers a free subscriber account on a WordPress site with open registration, then sends a crafted REST API POST request to the scheduled-exports endpoint with a malicious JavaScript payload embedded in the emailTo or format parameter. The payload is stored in the database without sanitization; when a site administrator later visits the export management page, the script executes in their browser session, enabling the attacker to exfiltrate the admin's authentication cookie or perform privileged WordPress actions on their behalf. No public POC exists at time of analysis, but the attack requires only basic HTTP tooling and a valid nonce, making it straightforward to reproduce.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 10, 2026

Stored cross-site scripting in the Ninja Forms - Scheduled Exports WordPress plugin (all versions through 3.0.3) allows any authenticated subscriber-level user to inject persistent malicious scripts via the REST API parameters interval, format, and emailTo, which then execute in the browsers of any user who visits the affected page. The root cause is a REST endpoint registered without a permission_callback that relies solely on nonce validation rather than WordPress capability checks, meaning the lowest default user role can reach it. No public exploit has been identified at time of analysis, but the subscriber-level entry barrier makes this meaningful on any site with open user registration.

RemediationAI

Update the Ninja Forms - Scheduled Exports plugin to a version beyond 3.0.3 as soon as the vendor publishes a patched release; the exact remediated version number is not confirmed in available data, so consult the Wordfence advisory at https://www.wordfence.com/threat-intel/vulnerabilities/id/867ad3a9-7e43-48ac-b5bf-8bd47ccfd8c5 and the plugin changelog at https://ninjaforms.com/extensions/scheduled-submissions-export/ for the confirmed fix version. As an interim compensating control, disable open user registration (Settings → General → uncheck 'Anyone can register') to remove the subscriber-level attack path; this has the trade-off of preventing new front-end registrations. Alternatively, restrict access to the affected REST API endpoint via WAF rules or a plugin such as Wordfence blocking unauthenticated and subscriber-role requests to the scheduled-exports REST namespace. Site administrators should also audit stored export configurations for injected script content and remove any suspicious entries.

Affected VersionsENISA

Ninja Forms - Scheduled Exports 0 ≤3.0.3

Affected Packages

euvd ninja_forms_scheduled_exports 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

The vulnerability resides in the Ninja Forms - Scheduled Exports add-on (CPE: cpe:2.3:a:saturday_drive:ninja_forms_-_scheduled_exports:*:*:*:*:*:*:*:*), a premium extension developed by Saturday Drive for the Ninja Forms WordPress plugin ecosystem. The flaw is CWE-79 (Improper Neutralization of Input During Web Page Generation - Stored XSS): user-supplied values for the REST API parameters interval, format, and emailTo are written to persistent storage without sanitization and later rendered in HTML context without output escaping. The deeper structural issue is the WordPress REST API registration mistake of omitting a permission_callback, which bypasses the WordPress capability system entirely; nonce-only validation authenticates the request as coming from a logged-in user but does not verify that the user holds any specific capability, so any subscriber-level account suffices.

Know when Ninja Forms Scheduled Exports 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 (Wordfence) PRIMARY 6.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Stored XSS execution requires a victim to visit the injected page (UI:R); subscriber-level auth (PR:L) confirmed; scope change (S:C) reflects payload executing in victim browser context.

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

Primary rating from Vendor (Wordfence).

CVSS VectorVendor: Wordfence

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

DescriptionCVE.org

The Ninja Forms - Scheduled Exports plugin for WordPress is vulnerable to Stored Cross-Site Scripting via REST API Parameters (interval, format, emailTo) in all versions up to, and including, 3.0.3 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level privileges and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The REST endpoint is registered without a permission_callback and only validates a nonce without checking user capabilities.

Threat Intelligence Overview

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
premium paid add-on for Ninja Forms, niche install base
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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.

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