Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister/authenticate as subscriber
-
DeliveryInject script payload into profile display_name
-
ExploitPayload stored and rendered in published chart
-
ExecutionVictim loads chart page
-
ImpactScript executes in victim browser session
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 three conditions to align: (1) the attacker holds at least subscriber-level authenticated access (PR:L), typically via open registration; (2) an administrator must have published a chart whose SQL query (via $wpdb->get_results()) returns a column the lower-privileged user can populate, such as wp_users.display_name editable at /wp-admin/profile.php; and (3) a victim must subsequently view the injected chart page. The dependency on a specific admin-created chart configuration that exposes a user-controllable column is the primary limiting factor - on sites without such a chart, the vulnerability is not reachable. There is no required user interaction for payload injection itself, but payload execution depends on a victim rendering the affected page. |
| Impact | This is a moderate-risk, not a top-priority, issue. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N, base 6.4) reflects a network-reachable, low-complexity, authenticated stored XSS with a scope change, which is consistent with the description. No EPSS score, KEV listing, or public POC is provided, so exploitation status is 'no public exploit identified at time of analysis' and there is no signal of widespread or automated exploitation. The practical risk is tempered by a meaningful precondition the raw CVSS score obscures: exploitation only works if an administrator has published a chart whose SQL query returns a column a low-privileged user can control (e.g. wp_users.display_name). This is a non-default, operator-dependent setup, so the real-world exploitable population is narrower than AV:N/AC:L alone suggests - closer to a targeted/conditional issue than a mass-exploitable flaw. The PR:L qualifier is supported by the vector and the description (subscriber-level access), so the authenticated characterization is confirmed from CVSS data. No signals conflict, but note that the attack-complexity rating arguably understates the configuration dependency. |
| Exploit ScenarioDerived | A site allows open subscriber registration and an administrator has published a SQL Chart Builder chart whose query surfaces a user-controllable field such as display_name. An attacker registers a subscriber account, sets a malicious script as their profile display name via /wp-admin/profile.php, and waits; when an administrator or visitor views the chart page, the stored payload executes in their browser. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Stored cross-site scripting in the SQL Chart Builder plugin for WordPress (elvinhaci), affecting all versions from 0 through 3.0.6, allows an authenticated subscriber-level user to persist arbitrary JavaScript that executes for anyone viewing a rendered chart. The attacker seeds a payload into a user-controlled database column - for example display_name set via /wp-admin/profile.php - and the plugin later prints that value unescaped as a chart X-axis label, so execution depends on an administrator having published a chart whose SQL query projects such a column and on a victim subsequently loading that page. No public exploit code has been identified at time of analysis and the CVE is not listed in CISA KEV, so this is a moderate-risk, not a top-priority, issue whose real-world reach is limited by that required admin-created chart configuration.
RemediationAI
The upstream fix has been committed in the SQL Chart Builder changeset 3725657 (https://plugins.trac.wordpress.org/changeset?reponame=&old=3725657%40sql-chart-builder&new=3725657%40sql-chart-builder); because the input does not confirm a separately tagged release version, treat this as an upstream fix available via PR/commit with the released patched version not independently confirmed, and update the plugin to the latest available release once it is confirmed to include changeset 3725657, verifying the installed version is greater than 3.0.6. Where immediate upgrade is not possible, apply targeted compensating controls: audit all published charts and remove or hard-code any SQL query that projects user-editable columns (for example wp_users.display_name or user_nicename) into axis, legend or label fields, accepting the trade-off that this reduces the flexibility of dynamic dashboards; restrict chart creation and editing capability to trusted administrator accounts so that no untrusted query configuration is published, which limits reporting features for other roles; close or moderate open subscriber registration and review existing subscriber accounts, understanding that this reduces legitimate sign-ups and does not remediate payloads already stored in profile fields; and scrub existing stored values by clearing or sanitizing profile fields such as display_name, which may alter how user names appear across the site. A WAF rule blocking script markup in profile-submission requests can reduce exploit attempts but produces false positives and does not replace the server-side escaping fix. Consult the Wordfence advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/16375398-c5c9-465f-9a2f-4c08f76b090b?source=cve) for the vendor-published guidance accompanying the patch.
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 vulnerable component is a WordPress plugin that executes administrator-supplied SQL through the WordPress database abstraction layer ($wpdb->get_results()) and feeds the resulting result set into a charting renderer. The root cause is CWE-79, improper neutralization of user-controlled input during web page generation: the reported code paths in functions.php (notably around the X-axis column handling referenced as $value->$xarg_s) interpolate a database column value directly into HTML markup without applying output escaping such as esc_html(), esc_attr() or wp_kses_post(), and the corresponding input is not sanitized on the way into the database. Because the injected value comes from a legitimate application field that ordinary users may write (display_name, and similar profile fields), the payload survives in the database and is re-rendered every time the chart page is loaded, making this a persistent/stored XSS rather than a reflected one. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N) classifies the issue as network-reachable, requiring low-privilege authentication and no user interaction for the injection step, with a scope change (S:C) reflecting that the script executes in the broader WordPress page context and can act beyond the vulnerable plugin component; confidentiality, integrity and availability impacts are each rated Low. Authentication requirements are confirmed as authenticated at subscriber level or above by the PR:L vector component. The CPE cpe:2.3:a:elvinhaci:sql_chart_builder:*:*:*:*:*:*:*:* and the ENISA EUVD record (EUVD-2026-102658, SQL Chart Builder 0 ≤ 3.0.6) both corroborate the version range.
Know when Sql Chart Builder 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
Network-reachable stored XSS requiring subscriber auth (PR:L), executing in another user's context (S:C) with limited confidentiality/integrity impact and no availability impact; AC:L for the injection step.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The SQL Chart Builder plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'X-axis column value ($value->$xarg_s from $wpdb->get_results())' parameter in all versions up to, and including, 3.0.6 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 requires an administrator to have published a chart whose SQL query returns a column controllable by a lower-privileged user, such as wp_users.display_name, which a Subscriber can populate with a payload via the standard WordPress profile page at /wp-admin/profile.php.
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-102658
GHSA-9rx6-fffx-55r5
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB