| tiêu đề | Dataease dataease v2.10.20 SQL Injection |
|---|
| Mô tả | DataEase 允许用户在数据集 SQL 中定义 `${变量名}` 占位符(SqlVariable),仪表板查询时由前端传入 filter 值进行替换。替换逻辑位于 `SqlparserUtils.transFilter()`:
```java
private String transFilter(SqlVariableDetails sqlVariableDetails, ...) {
if (sqlVariableDetails.getOperator().equals("in")) {
...
return "'" + String.join("','", sqlVariableDetails.getValue()) + "'";
} else if (...) {
...
} else {
return (String) sqlVariableDetails.getValue().get(0); // ← 原样返回用户输入
}
}
```
最后的 `else` 分支(适用于 `=`、`!=`、`<`、`>`、`like` 等所有非 in/between 算子)**直接返回用户输入**,随后被 `SubstitutedSql.replace("${var}", value)` 拼回 SQL。攻击者可通过控制该 value 注入任意 SQL。 |
|---|
| Nguồn | ⚠️ https://github.com/xpp3901/CVE_APPLY/tree/main/V-D001_DataEase_SqlVariable_Injection |
|---|
| Người dùng | xpp39 (UID 97299) |
|---|
| Đệ trình | 14/04/2026 09:46 (cách đây 2 các tháng) |
|---|
| Kiểm duyệt | 16/05/2026 11:35 (1 month later) |
|---|
| Trạng thái | được chấp nhận |
|---|
| Mục VulDB | 364315 [Dataease 2.10.20 Data Dashboard SqlparserUtils.java SqlparserUtils.transFilter Tiêm SQL] |
|---|
| điểm | 20 |
|---|