Server-side Request Forgery (SSRF) in hackney · CVE-2025-1211
漏洞概述
在Erlang的hackney HTTP客户端库中发现了一个服务器端请求伪造漏洞。该漏洞被分配了CVE编号CVE-2025-1211和GitHub安全通告ID GHSA-vq52-99r9-h5pw。
受影响范围
受影响的软件包:
- erlang
- hackney (Erlang)
受影响的版本:
- 所有低于1.21.0的hackney版本(从0.0.0开始)
已修复的版本:
- 1.21.0
漏洞详情
该漏洞源于URI内置模块与hackney库对URL解析方式的不一致。
技术细节:
当处理类似http://127.0.0.1?@127.2.2.2/的URL时:
URI函数会正确解析主机名为127.0.0.1- 然而,
hackney库会将主机名解析为127.2.2.2/
这种解析差异导致攻击者能够绕过基于URI函数的主机检查机制,从而实现服务器端请求伪造攻击。当应用程序依赖URI模块进行主机验证时,此漏洞可能被利用。
严重程度
严重等级: 低 CVSS总体评分: 2.9/10
CVSS v4 基本指标:
- 攻击向量:网络
- 攻击复杂度:低
- 攻击要求:存在
- 所需权限:无
- 用户交互:无
- 受影响系统机密性影响:低
- 受影响系统完整性影响:无
- 受影响系统可用性影响:无
EPSS评分: 0.042%(第12百分位)
相关参考资料
- 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演讲资料:关于利用流行编程语言中URL解析器进行SSRF攻击的新时代
- 修复提交:benoitc/hackney@9594ce5
- 发布版本:https://github.com/benoitc/hackney/releases/tag/1.21.0
弱点分类
CWE-918: 服务器端请求伪造 描述:Web服务器从上游组件接收URL或类似请求并获取此URL的内容,但未能充分确保请求被发送到预期目标。
时间线
- 发布时间(NVD): 2025年2月11日
- 发布到GitHub咨询数据库: 2025年2月11日
- 审核时间: 2025年2月11日
- 最后更新: 2025年2月20日
安全建议
建议所有使用hackney库的用户立即升级到1.21.0或更高版本,以修复此漏洞。对于无法立即升级的用户,应实施额外的输入验证和主机检查机制。