hackney库中的服务器端请求伪造漏洞深度解析

本文详细分析了Erlang HTTP客户端库hackney中的一个服务器端请求伪造漏洞。该漏洞源于URL解析不一致,允许攻击者绕过主机检查机制。文章涵盖了漏洞描述、影响版本、修复方式及相关的CVSS评分和技术参考资料。

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百分位)

相关参考资料

  1. NVD漏洞详情:https://nvd.nist.gov/vuln/detail/CVE-2025-1211
  2. 技术分析文档:https://gist.github.com/snoopysecurity/996de09ec0cfd0ebdcfdda8ff515deb1
  3. Snyk漏洞报告:https://security.snyk.io/vuln/SNYK-HEX-HACKNEY-6516131
  4. Black Hat演讲资料:关于利用流行编程语言中URL解析器进行SSRF攻击的新时代
  5. 修复提交:benoitc/hackney@9594ce5
  6. 发布版本: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或更高版本,以修复此漏洞。对于无法立即升级的用户,应实施额外的输入验证和主机检查机制。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计