服务器端请求伪造(SSRF)在hackney库中 · CVE-2025-1211
漏洞概述
CVE-2025-1211是一个影响Erlang HTTP客户端库hackney的服务器端请求伪造(SSRF)漏洞,被GitHub安全团队评为低危级别。该漏洞存在于hackney 1.21.0之前的所有版本中。
技术细节
漏洞根源
此SSRF漏洞源于URI内置模块与hackney库之间的URL解析不一致性。当处理特殊构造的URL时,两个组件对主机名的识别会产生分歧,从而导致安全绕过。
攻击向量
考虑以下示例URL:
|
|
- URI模块解析结果:正确地将
127.0.0.1识别为主机 - hackney库解析结果:错误地将
127.2.2.2/识别为主机
这种解析差异使得攻击者能够绕过基于URI模块的主机检查机制,当应用程序依赖URI函数进行主机验证时,攻击者可能访问非预期的内部服务。
影响范围
- 受影响版本:hackney < 1.21.0
- 已修复版本:hackney 1.21.0
安全评估
CVSS v4评分
- 总体评分:2.9/10(低危)
- 攻击向量:网络(Network)
- 攻击复杂度:低(Low)
- 所需权限:无(None)
- 用户交互:无(None)
受影响系统指标
- 机密性影响:低(Low)
- 完整性影响:无(None)
- 可用性影响:无(None)
后续系统指标
- 机密性影响:低(Low)
- 完整性影响:低(Low)
- 可用性影响:低(Low)
EPSS评分
漏洞被利用的概率估计为0.045%(第14百分位),表明短期内被广泛利用的可能性较低。
弱点分类
- CWE标识:CWE-918
- 弱点类型:服务器端请求伪造(SSRF)
- 描述:Web服务器从上游组件接收URL或类似请求并获取该URL的内容,但未能充分确保请求被发送到预期目的地。
修复与参考
官方修复
漏洞在hackney 1.21.0版本中通过提交9594ce5得到修复。用户应立即升级到该版本或更高版本。
参考资源
- NVD漏洞详情:https://nvd.nist.gov/vuln/detail/CVE-2025-1211
- 技术分析文档:https://gist.github.com/snoopysecurity/996de09ec0cfd0ebdcfdda8ff515deb1
- Snyk安全报告:https://security.snyk.io/vuln/SNYK-HEX-HACKNEY-6516131
- Black Hat技术研究:https://www.blackhat.com/docs/us-17/thursday/us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages.pdf
- 官方发布说明:https://github.com/benoitc/hackney/releases/tag/1.21.0
安全建议
- 立即升级:所有使用hackney库的项目应尽快升级至1.21.0或更高版本
- 输入验证:即使使用修复后的版本,也建议实施多层URL验证机制
- 网络隔离:限制应用程序服务器的出站网络访问,减少SSRF攻击面
- 监控日志:加强对异常URL请求的监控和日志记录
元数据
- GHSA ID:GHSA-vq52-99r9-h5pw
- 首次发布:2025年2月11日(GitHub安全公告数据库)
- 最后更新:2025年2月20日
- 漏洞分析人员:benoitc
- 数据库状态:GitHub已审核