Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as Subscriber granted access_roles
-
DeliveryCall updateRows with dtgs_nonce
-
ExploitInject script into table cell 'data'
-
ExecutionPayload stored in table definition
-
ImpactExecutes in victim browser on page render
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 | Exploitable only when an administrator has added the attacker's role (Subscriber) to the plugin's 'access_roles' setting - a documented, explicitly supported feature that grants lower-privileged users the dtgs_nonce required to reach the updateRows action handler. The attacker must hold an authenticated Subscriber-level (or higher) account on the target site. LIMITING FACTORS: this is NOT a default configuration (access_roles must be deliberately extended to low-privilege roles by an admin), exploitation requires valid authentication, and payload execution requires a victim to access a page that renders the injected table. These conditions meaningfully narrow the exploitable population versus the AV:N/PR:L base vector. |
| Impact | This is a moderate-severity Stored XSS (CWE-79, CVSS 6.4) whose real-world risk is substantially constrained by a precondition that the raw CVSS vector understates. The input CVSS vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) indicates network-reachable, low-privilege, no-user-interaction exploitation with a scope change - typical of a self-executing stored XSS. However, the description makes clear exploitation is NOT possible in a default configuration: a Subscriber can only reach the vulnerable updateRows handler if an administrator has explicitly added the Subscriber role to the plugin's 'access_roles' setting to obtain the dtgs_nonce. This is a legitimate, documented feature, but it is a non-default condition, so AC:L arguably understates complexity. No EPSS score, KEV listing, or public POC was provided in the intelligence; with no public exploit identified at time of analysis and no evidence of active exploitation, this is a prioritize-for-patch-cycle issue rather than an emergency. Net: a genuine authenticated stored XSS confirmed by Wordfence, but the 'PR:L + UI:N' framing overstates ease - effective exploitation depends on a deliberate administrator configuration choice, pushing actual risk below what the 6.4 base score alone suggests. |
| Exploit ScenarioDerived | On a site where an administrator has added the Subscriber role to the Data Tables Generator 'access_roles' setting, a malicious Subscriber-level user uses their granted dtgs_nonce to call the updateRows action and injects a JavaScript payload into a table cell's 'data' value. The payload is stored and then executes in the browser of any user - including higher-privileged administrators - who views a page rendering that table, enabling session/cookie theft or admin-context actions. No public exploit code was identified at time of analysis, though the vulnerable code paths are documented in the referenced plugin source. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 10, 2026
Stored cross-site scripting in the WordPress plugin Data Tables Generator by Supsystic (all versions up to and including 1.15.1) allows an authenticated attacker holding a Subscriber-level or higher account to inject arbitrary JavaScript into a table cell's 'data' value through the updateRows action, which then executes in the browser of any user who views a page rendering that table. Reachability depends on a non-default precondition: an administrator must have deliberately added the attacker's low-privilege role to the plugin's 'access_roles' setting, which is a documented feature that hands those users the dtgs_nonce needed to call the vulnerable handler, so the exploitable population is meaningfully narrower than the raw base vector implies. No public exploit code has been identified at time of analysis and there is no KEV listing.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - the identified remediation is the trunk changeset at https://plugins.trac.wordpress.org/changeset/3721225/data-tables-generator-by-supsystic/trunk/src/SupsysticTables/Tables/Model/Tables.php, which modifies the Tables model handling that stores the unsanitized cell 'data' value. Administrators should watch the plugin's WordPress.org page and changelog and upgrade as soon as a release newer than 1.15.1 ships, verifying the changelog entry corresponds to this fix. Immediate compensating control: open the plugin's 'access_roles' setting and remove every non-administrator role (Subscriber, Contributor, Author, Editor) so that the dtgs_nonce required to reach the updateRows handler is only issued to administrators - the trade-off is that the intended delegation of table management to those lower-privileged users stops working. If multi-role table editing is not actually required, deactivating the plugin removes the exposure entirely. A WAF rule that inspects and rejects POSTs to admin-ajax.php carrying the updateRows action provides partial mitigation but risks breaking legitimate table saves and can be bypassed with alternate parameter encoding, so it should only be used as a stopgap. Reference advisory: https://www.wordfence.com/threat-intel/vulnerabilities/id/12316a14-57e9-4e00-ad6b-04df3b169d73?source=cve.
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 persisted cross-site scripting flaw (CWE-79, improper neutralization of input during web page generation) in the Supsystic Data Tables Generator WordPress plugin, slug data-tables-generator-by-supsystic. The vulnerable path runs through the plugin's AJAX layer: Core/Module.php and Core/BaseController.php govern nonce (dtgs_nonce) issuance and request authorization, Controller.php (line 529) exposes the updateRows action, and the Tables model (Tables.php lines 349 and 1028) stores attacker-supplied cell content without sanitization while the front-end renderer in Tables/views/shortcode.twig (line 151) echoes it back without output escaping. Because the payload is persisted and re-rendered on every page load of the affected table, execution occurs in the session context of any visitor, including higher-privileged users, which is why the vendor's CVSS assessment assigns Scope:Changed. The critical gating factor is the plugin's access_roles setting: the vulnerable handler is only reachable with a valid dtgs_nonce, and nonces are issued to low-privilege roles only when an administrator has explicitly granted them access. That dependency, combined with the requirement for a valid authenticated account and for a victim to actually load the poisoned table, is why the independent assessment raises the attack complexity relative to the published base vector while keeping the same confidentiality and integrity impact.
Know when Data Tables Generator By Supsystic 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:L/UI:N/S:C/C:L/I:L/A:N
Authenticated Subscriber (PR:L); AC:H because exploitation depends on a non-default admin-granted access_roles configuration beyond the attacker's control; stored XSS crosses into the browser (S:C), with limited C/I and no availability impact.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Data Tables Generator by Supsystic plugin for WordPress is vulnerable to Stored Cross-Site Scripting via Table Cell 'data' Value via updateRows Action in all versions up to, and including, 1.15.1 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with subscriber-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is only exploitable by Subscriber-level users when an administrator has added their role to the plugin's 'access_roles' setting, which is a documented and explicitly supported plugin feature that grants lower-privileged users access to the dtgs_nonce required to reach the vulnerable updateRows action handler.
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.
EUVD-2026-96053
GHSA-wj3j-63m4-hxjx
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB