Skip to main content

SQLBot CVE-2026-53555

| EUVDEUVD-2026-82563 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-17 security-advisories@github.com
5.1
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as uploader-role user
  2. Delivery
    PATCH assistant UI logo with malicious SVG
  3. Exploit
    Server stores SVG without sanitization
  4. Execution
    Victim loads logo via picture endpoint
  5. Persist
    SVG JavaScript executes in SQLBot origin
  6. Impact
    Hijack victim session data and 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

Requires an authenticated SQLBot account with permission to upload the assistant UI logo (the uploader role reaching PATCH /api/v1/system/assistant/ui) on a version prior to 1.9.0, where the upload allowlist accepted .svg. Exploitation further requires a second victim user to load the stored logo served inline from the same origin via GET /api/v1/system/assistant/picture/{filename}, so it is not fully self-contained - it needs the passive interaction of another logged-in user. Limiting factors: no anonymous/unauthenticated path, impact bounded to the victim session's data and actions (no direct RCE or full-account takeover claimed), and it is neutralized by upgrading to 1.9.0 which drops SVG from accepted upload types.

Impact

This is a genuine but moderate-severity stored XSS, not a top-priority emergency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N, score 5.1) tells the real story: exploitation is network-reachable and low-complexity, but gated by two factors - the attacker must already hold an authenticated account with logo-upload rights (PR:L), and a victim must load the malicious resource (UI:P/passive). Impact is capped at Low confidentiality and Low integrity because the injected JavaScript is confined to whatever the victim's session can see and do, not full application compromise. No EPSS score, no CISA KEV listing, and no public POC were provided, so there is no signal of active or automated exploitation - this is 'no public exploit identified at time of analysis.' The patch is confirmed available (v1.9.0, commit 835eefcb) and the fix is a one-line allowlist change removing .svg from accepted upload types, which is a clear, low-effort mitigation. Net: prioritize as a normal patch-cycle item, elevated only for deployments where low-privileged users can upload assistant logos and other users share the same origin.

Exploit ScenarioDerived

An authenticated SQLBot user with uploader privileges submits a crafted image/svg+xml file containing embedded <script> as the assistant UI logo via PATCH /api/v1/system/assistant/ui. When any other user's browser later renders that logo inline from GET /api/v1/system/assistant/picture/{filename}, the embedded JavaScript executes in the SQLBot origin, letting the attacker act with the victim's session privileges. No public exploit code was identified, but the technique is well-understood and the fixing commit effectively documents the vector.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 17, 2026

Stored cross-site scripting in SQLBot prior to 1.9.0 lets an authenticated user with logo-upload privileges persist a malicious SVG that later executes JavaScript in another user's browser session. The uploader sends an image/svg+xml file to PATCH /api/v1/system/assistant/ui, which is stored without sanitization and then served inline from the same application origin via GET /api/v1/system/assistant/picture/{filename}; when a second logged-in user loads the generated resource, the embedded script runs with access to that victim's session data and actions. Exploitation requires a valid SQLBot account and the passive interaction of another user (CVSS 4.0 base 5.1; assessed CVSS 3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N), and no public exploit code has been identified at time of analysis; the issue is fixed in 1.9.0.

RemediationAI

Vendor-released patch: upgrade SQLBot to 1.9.0 (https://github.com/dataease/SQLBot/releases/tag/v1.9.0), which removes '.svg' from the accepted assistant-UI upload types in backend/apps/system/api/assistant.py and backend/apps/system/crud/parameter_manage.py and raises the sqlbot-xpack dependency floor to >=0.0.5.22,<0.0.6.0 - the corresponding code change is in PR https://github.com/dataease/SQLBot/pull/1160 and commit https://github.com/dataease/SQLBot/commit/835eefcb39b595248ea006f3cfce445d2f49167e, and the official advisory is https://github.com/dataease/SQLBot/security/advisories/GHSA-v23m-5pvq-xcgx. If upgrading cannot be done immediately, restrict the logo upload allowlist on the running instance to .jpg, .jpeg and .png only (for example by patching SQLBotFileUtils.check_file or by fronting the endpoint with a reverse-proxy rule that rejects multipart uploads containing image/svg+xml), and remove or re-encode any previously uploaded SVG logos, since the stored payload persists after the upload path is closed and the retrieval endpoint will keep serving it. As a defence-in-depth measure, serve /api/v1/system/assistant/picture/* with Content-Disposition: attachment or from a separate origin such as a CDN or dedicated cookie-less subdomain so any residual active content cannot execute in the SQLBot origin, and add a Content-Security-Policy that forbids inline script; the trade-offs are that attachment disposition changes how logos render in the UI, cross-origin hosting requires CORS/asset-path changes, and a strict CSP can break legitimate inline script in the SQLBot frontend until it is tuned. Note that disabling custom SVG logos forces administrators to convert vector artwork to PNG, which may reduce image quality, and that low-privileged accounts that can reach the assistant UI settings should be reviewed as part of the cleanup.

Affected VersionsENISA

SQLBot < 1.9.0

Affected Packages

euvd sqlbot fix: 1.9.0

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 root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation / Cross-Site Scripting) applied to a file-upload trust boundary. SQLBot's assistant UI accepts a custom logo through a multipart form handled in backend/apps/system/api/assistant.py, where the upload allowlist passed to SQLBotFileUtils.check_file previously included '.svg' alongside '.jpg' and '.png'. SVG is not an inert image format: it is an XML document that may contain <script> elements and event handlers, so storing an attacker-supplied SVG and later returning it inline with an image/svg+xml content type from the application's own origin causes the browser to parse and execute the embedded JavaScript in the SQLBot origin context. The retrieval endpoint GET /api/v1/system/assistant/picture/{filename} serves the stored file inline from the same application origin, which is what converts a benign-looking image upload into same-origin script execution. The upstream fix (commit 835eefcb39b595248ea006f3cfce445d2f49167e, PR #1160) narrows the accepted upload types in both assistant.py and the parameter_manage.py type documentation to .jpg, .jpeg and .png, removes '.svg' from every localized upload help string in en, ko-KR, zh-CN and zh-TW locales, and bumps the sqlbot-xpack dependency from >=0.0.5.19 to >=0.0.5.22 so the deployment-side package enforces the same restriction. Because the injected script runs in the SQLBot web origin, it inherits the victim's session cookies and CSRF context, so it can read rendered data and perform actions the victim is authorized to perform, but the assessed impact is limited to the victim session (no RCE and no full account takeover claimed).

Know when Sqlbot 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 (github) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Authenticated low-priv uploader (PR:L) plants stored payload that runs in another user's browser (UI:R, S:C); XSS yields Low confidentiality/integrity within the victim session, no availability impact.

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:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 17, 2026 - 23:04 EUVD

DescriptionCVE.org

SQLBot is an intelligent Text-to-SQL system based on large language models and RAG. Prior to 1.9.0, an authenticated uploader can submit an image/svg+xml assistant UI logo through PATCH /api/v1/system/assistant/ui, and SQLBot stores the SVG without sanitizing or validating embedded active content. SQLBot later serves the file inline from the same application origin through GET /api/v1/system/assistant/picture/{filename}. When another user loads that generated resource, JavaScript embedded in the SVG executes in the SQLBot web application context, resulting in stored cross-site scripting with access to data and actions available to the victim's session. This issue is fixed in version 1.9.0.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Low
niche open-source LLM Text-to-SQL tool, limited production footprint
Data Quality
6 sources
Confidence: High

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.4%
Patch available Yes
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

More in Sqlbot

View all
CVE-2025-69285 MEDIUM POC
6.1 Jan 21

SQLBot is an intelligent data query system based on a large language model and RAG. [CVSS 6.1 MEDIUM]

CVE-2026-33324 CRITICAL
9.4 May 05

Prompt injection in SQLBot 1.7.0 and earlier allows authenticated attackers to execute arbitrary SQL statements through

CVE-2026-72743 MEDIUM POC
5.1 Aug 10

Stored cross-site scripting in SQLBot's SQText dashboard component allows any authenticated low-privilege user who can e

CVE-2026-32622 HIGH
8.8 Mar 19

Remote code execution in SQLBot 1.5.0 and below allows authenticated users to inject malicious prompts through unsanitiz

CVE-2026-32950 HIGH
8.8 Mar 20

SQLBot, an intelligent data query system based on large language models and RAG, contains a critical SQL injection vulne

CVE-2026-42463 HIGH
8.6 May 13

Cross-workspace IDOR in SQLBot (DataEase) versions prior to 1.8.0 allows authenticated low-privilege users to read and m

CVE-2026-32949 HIGH
7.5 Mar 20

A Server-Side Request Forgery (SSRF) vulnerability in SQLBot, an intelligent data query system based on large language m

CVE-2026-93660 HIGH
7.1 Sep 18

Authenticated workspace members in DataEase SQLBot through 1.10.1 can rename and rewrite other users' private dashboards

CVE-2025-15598 LOW POC
2.9 Mar 03

A vulnerability was found in Dataease SQLBot up to 1.5.1. This impacts the function validateEmbedded of the file backend

CVE-2025-15597 LOW POC
2.1 Mar 02

A vulnerability has been found in Dataease SQLBot up to 1.4.0. This affects an unknown function of the file backend/apps

CVE-2026-5417 LOW POC
2.0 Apr 02

Server-side request forgery (SSRF) in Dataease SQLBot up to version 1.6.0 allows high-privileged remote attackers to man

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