Skip to main content

SQL Chart Builder EUVDEUVD-2026-102658

| CVE-2026-100158 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-16 Wordfence GHSA-9rx6-fffx-55r5
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/authenticate as subscriber
  2. Delivery
    Inject script payload into profile display_name
  3. Exploit
    Payload stored and rendered in published chart
  4. Execution
    Victim loads chart page
  5. Impact
    Script 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.

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 – 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

SQL Chart Builder 0 ≤3.0.6

Affected Packages

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

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 6.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/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 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

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Low
niche single-author WordPress charting plugin, limited install base
Social Media
1
Sightings
Data Quality
5 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
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

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