# 锐捷网络Y9平台SQL注入漏洞
## 概述
risesoft-y9 Digital-Infrastructure 存在 SQL 注入漏洞,影响版本 ≤ 9.6.7。漏洞位于组件 REST 认证端点的 `Y9PlatformUtil.java` 文件中,攻击者可通过远程操纵触发 SQL 注入。
## 影响版本
risesoft-y9 Digital-Infrastructure 9.6.7 及以下版本。
## 细节
漏洞文件路径:`source-code/src/main/java/net/risesoft/util/Y9PlatformUtil.java`。
受影响组件:REST 认证端点。
具体成因:未知函数存在输入处理缺陷,导致可被利用进行 SQL 注入。
攻击方式:远程操纵。
漏洞利用代码已被公开,具备实际利用风险。
## 影响
攻击者可利用该漏洞执行恶意 SQL 语句,可能导致数据泄露、篡改或数据库权限被获取,且无需本地访问权限即可远程利用。项目方已被告知但尚未响应。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: [Bug]: SQL injection on /server-platform/services/rest/auth/authenticate3 · Issue #2 · risesoft-y9/Digital-Infrastructure -- 🔗来源链接
标签:issue-tracking
神龙速读:
### 漏洞关键信息
#### 概要
- **漏洞类型**: SQL 注入
- **影响路径**:
- `/server-platform/services/rest/auth/authenticate3`
- `/server-platform/services/rest/auth/authenticate5`
- `/server-platform/services/rest/v1/auth/authenticate3`
#### 漏洞描述
- **根本原因**: 参数 `tenantShortName` 在传递给 SQL 查询时未经过适当清理或验证,导致 SQL 注入漏洞。
- **受影响版本**: <= 9.6.7
#### 代码示例
- **问题代码**:
```java
// source-code/src/main/java/net/risesoft/util/Y9PlatformUtil.java#L80C4-L84C5
80. public static List<String> getTenantByLoginName(String loginName) {
81. String sql = "select id from Y9_COMMON_TENANT t where t.SHORT_NAME='" + loginName + "'";
82. List<String> tenantIds = getJdbcTemplate4Public().queryForList(sql, String.class);
83. return tenantIds;
84. }
```
- **漏洞利用点**:
```java
// source-code/src/main/java/org/AuthenticateApiImpl.java#L29C4-L37C5
29. public Message authenticate3(@RequestParam("tenantShortName") @NotBlank String tenantShortName, @RequestParam ... {
30. List<String> tenantIds = Y9PlatformUtil.getTenantByLoginName(tenantShortName);
31. if (!tenantIds.isEmpty()) {
32. String tenantId = (String) tenantIds.get(0);
33. Y9LoginUserHolder.setTenantId(tenantId);
34. }
35. return this.authService.authenticate3(tenantShortName, loginName, password);
37. }
```
#### 证明概念 (POC)
- **POC 代码片段**:
该 Python 脚本利用 SQL 注入漏洞进行攻击,通过构造请求并使用 `sqlmap` 工具研究响应内容。
#### 预期结果 vs 实际结果
- **预期**: NULL
- **实际**: NULL
#### 修正建议
- 应使用预编译 SQL 语句来避免直接嵌入用户可控参数。
- 对输入参数进行严格的验证与清理。
标题: [Bug]: SQL injection on /server-platform/services/rest/auth/authenticate3 · Issue #2 · risesoft-y9/Digital-Infrastructure -- 🔗来源链接
标签:exploitissue-tracking
神龙速读:
### 漏洞关键信息
#### 漏洞类型
- SQL注入
#### 漏洞位置
- `/server-platform/services/rest/auth/authenticate3`
- `/server-platform/services/rest/auth/authenticate5`
- `/server-platform/services/rest/v1/auth/authenticate3`
#### 描述
- 在最新版本中,传递到`/server-platform/services/rest/auth/authenticate3`端点的参数是用户可控且未进行净化。
- 执行最终的SQL查询时未使用预编译语句,导致SQL注入漏洞。
- 攻击者可以利用此漏洞从数据库中获取敏感数据,甚至完全控制服务器。
#### 示例代码
```java
// 动态拼接SQL字符串,未使用预编译语句
String sql = "select id from Y9_COMMON_TENANT t where t.SHORT_NAME='" + loginName + "'";
```
#### 漏洞利用代码
- 提供了利用该漏洞的Proof of Concept代码。
- 使用sqlmap工具发起攻击。
#### 预期结果
- 返回NULL
#### 实际结果
- 返回NULL
#### 影响版本
- <=9.6.7
标题: Submit #731010: risesoft-y9 Digital-Infrastructure <=9.6.7 SQL Injection -- 🔗来源链接
标签:third-party-advisory
神龙速读:
- **Title**: risesoft-y9 Digital-Infrastructure <=9.6.7 SQL Injection
- **Description**: SQL injection vulnerability due to unsanitized user-controllable parameters in the /server-platform/services/rest/auth/authenticate3 endpoint, impacting database sensitive data and potential server control. Also affects authenticate5 and authenticate3 endpoints.
- **Source**: [GitHub issue](https://github.com/risesoft-y9/Digital-Infrastructure/issues/2)
- **User**: ZAST.AI
- **Submission Date**: 01/03/2026
- **Moderation Date**: 01/16/2026
- **Status**: Accepted
- **VulDB Entry**: [341603](https://www.vuldb.com/?id.341603)
- **Points**: 20
暂无评论