Skip to main content

tduck-platform EUVDEUVD-2026-84986

| CVE-2026-95829 LOW
SQL Injection (CWE-89)
2026-09-22 VulDB GHSA-rj23-5g4f-59vx
2.1
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to TDuck platform
  2. Delivery
    Send paginated list request with crafted orders[0].column
  3. Exploit
    Inject SQL into ORDER BY via concatOrderBy
  4. Execution
    Infer database contents blind/boolean
  5. Impact
    Exfiltrate sensitive data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

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 session (PR:L) on the TDuck tduck-platform (≤5.3) and access to a paginated listing endpoint that flows into MyBatis-Plus pagination sorting (e.g., user/form-template/theme queries). The attacker must supply the orders[0].column sort parameter, which is concatenated into the ORDER BY clause by PaginationInnerInterceptor.concatOrderBy without allowlisting - this identifier position cannot be parameterized by JDBC, which is why the fix adds SqlInjectionUtils.check and an alphanumeric/underscore/dot regex allowlist. Limiting factors: valid credentials are required (not remote-unauthenticated), and impact is primarily inferential data disclosure typical of order-by injection rather than arbitrary data modification.

Impact

The vendor/VulDB CVSS 4.0 base score is 5.3 (medium) with vector AV:N/AC:L/AT:N/PR:L/UI:N and uniformly Low impacts (VC:L/VI:L/VA:L), and E:P confirms proof-of-concept maturity. This is an authenticated (PR:L) SQL injection in the MyBatis-Plus pagination order-by handling (PaginationInnerInterceptor.concatOrderBy) reached via the attacker-controlled orders[0].column parameter - a column-identifier injection, which MyBatis/JDBC cannot bind as a parameter, so it is a genuine injection class. However, order-by column injection is materially narrower than classic value-based injection: it typically enables boolean/blind and error/time-based inference (confidentiality-leaning) rather than full data modification or dumping, which is consistent with the Low integrity/availability ratings. No EPSS score was provided and the CVE is NOT in CISA KEV, so there is no evidence of active or widespread exploitation despite the public PoC. The description's 'exploit is publicly available and might be used' aligns with E:P but does not equal active exploitation - treat as PoC-available, not weaponized in the wild. Net priority: moderate-and-conditional. It requires an authenticated account (PR:L) on a niche open-source form/survey platform, which sharply limits real-world blast radius; patch promptly if TDuck is internet-exposed with low-trust user accounts, otherwise routine remediation is adequate.

Exploit ScenarioDerived

An authenticated low-privilege user of a TDuck form platform submits a paginated list request (e.g., user/template/theme listing) and manipulates the orders[0].column sort parameter, injecting SQL into the ORDER BY clause that MyBatis-Plus cannot parameterize. Because a public exploit exists, the attacker uses boolean/error/time-based inference to extract data from the backing database. Exploitation is remote over HTTP but gated on holding a valid account.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 22, 2026

SQL injection in TDuckCloud tduck-platform through version 5.3 lets an authenticated user inject arbitrary SQL through the orders[0].column sort parameter of paginated listing endpoints, which MyBatis-Plus concatenates directly into the ORDER BY clause. Successful exploitation primarily enables inferential (blind) reading of database contents, consistent with the assessed CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N profile and the vendor's CVSS 4.0 score of 5.3 with PR:L and uniformly Low impacts. Proof-of-concept exploitation is publicly available (E:P, matching VulDB's 'exploit publicly available' note), but there is no CISA KEV entry, so confirmed active exploitation in the wild has not been established; no EPSS score was supplied for this record.

RemediationAI

Apply the upstream fix in commit ea7f0fae7cb0fd998a3284c11addce689350cd69 (https://github.com/TDuckCloud/tduck-survey-form/commit/ea7f0fae7cb0fd998a3284c11addce689350cd69), which introduces SqlInjectionUtils.check plus an alphanumeric/underscore/dot allowlist in QueryWrapperUtils.handleSortColumn and replaces raw Page parameters with PageRequest.toMybatisPage() in the affected controllers; note that upstream fix code is confirmed but a separately tagged patched release version is not independently confirmed, so verify the fix is present in whatever build you deploy rather than assuming a version number. Until the patch is deployed, treat the sort parameter on paginated endpoints as untrusted: restrict the FormTemplateController, FormThemeController, SyncDataController, and UserManageController listing routes to fully trusted authenticated accounts (this limits exposure to the required PR:L attacker but does not eliminate it, since any valid low-privilege session can exploit it), and front the application with a WAF or reverse-proxy rule that rejects orders[0].column values containing quotes, parentheses, comment markers, whitespace, or SQL keywords - accepting the trade-off that legitimate combination sorts may be blocked. Additional hardening: run the database account used by tduck-platform with least privilege and no DDL/file-read grants so blind order-by injection cannot be escalated into data modification or file access, and monitor database logs for anomalous ORDER BY expressions. Vendor and CVE references: https://vuldb.com/vuln/408522 and https://vuldb.com/cve/CVE-2026-95829.

Affected VersionsENISA

tduck-platform 5.2
tduck-platform 5.1
tduck-platform 5.3
tduck-platform 5.0

Affected Packages

euvd tduck_platform 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 flaw is a CWE-89 SQL injection rooted in MyBatis-Plus pagination handling. The vulnerable code path is PaginationInnerInterceptor.concatOrderBy, reached through configuration in tduck-api/src/main/java/com/tduck/cloud/api/config/MybatisPlusConfig.java, where a user-controlled sort column name is appended to the ORDER BY clause. Because an ORDER BY identifier is a SQL structural element rather than a bindable value, JDBC prepared-statement parameterization cannot neutralize it, which is precisely why the upstream fix (commit ea7f0fae7cb0fd998a3284c11addce689350cd69) adds an explicit allowlist: QueryWrapperUtils.handleSortColumn now calls MyBatis-Plus SqlInjectionUtils.check along with an ORDER_BY_PATTERN regex restricting column names to alphanumeric characters, underscores, and dots (plus a separate DATE_TIME_PATTERN for date-range values). The same commit also replaces raw com.baomidou.mybatisplus.extension.plugins.pagination.Page parameters with a constrained PageRequest.toMybatisPage() wrapper across FormTemplateController, FormThemeController, SyncDataController, and UserManageController, closing the untrusted sort-parameter surface. The CPE cpe:2.3:a:tduckcloud:tduck-platform:*:*:*:*:*:*:*:* does not resolve to a bounded version range, so the practical affected scope must be read as all releases at or below 5.3 of the Java/Spring Boot tduck-survey-form application.

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

Remote HTTP with a required low-privilege account (PR:L); order-by column injection yields blind/inferential read (C:L), with no realistic write or availability impact, so I:N/A:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

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

Lifecycle Timeline

2
Severity Changed
Sep 23, 2026 - 00:22 NVD
MEDIUM LOW
CVSS changed
Sep 23, 2026 - 00:22 NVD
5.3 (MEDIUM) 2.1 (LOW)

DescriptionCVE.org

A vulnerability was identified in TDuckCloud tduck-platform up to 5.3. This vulnerability affects the function PaginationInnerInterceptor.concatOrderBy of the file tduck-api/src/main/java/com/tduck/cloud/api/config/MybatisPlusConfig.java of the component Pagination Inner Interceptor. The manipulation of the argument orders[0].column leads to sql injection. The attack can be initiated remotely. The exploit is publicly available and might be used. The identifier of the patch is ea7f0fae7cb0fd998a3284c11addce689350cd69. It is suggested to install a patch to address this issue.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Low
niche open-source Chinese form/survey builder, limited enterprise footprint
Data Quality
7 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 LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

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