Dio 库 HTTP 方法字符串 CRLF 注入漏洞解析 (CVE-2021-31402)

本文详细分析了 Dio (Dart 的 HTTP 客户端) 在 5.0.0 之前版本中存在的 CRLF 注入漏洞。当攻击者能够控制 HTTP 方法字符串时,可能引发此安全问题。漏洞已被修复,本文提供了补丁、临时解决方法和相关参考资料。

CVE-2021-31402: Dio 库易受 HTTP 方法字符串 CRLF 注入攻击

漏洞详情

摘要 Dart 语言中的 dio 包在 4.0.0 版本中存在一个 CRLF 注入漏洞(不同于 CVE-2020-35669),当攻击者能够控制 HTTP 方法字符串时,可触发此漏洞。

影响范围 受影响版本: dio < 5.0.0 已修复版本: dio >= 5.0.0

影响 该漏洞存在于用于 Dart 的 dio 包 4.0.0 版本中,如果攻击者控制了 HTTP 方法字符串,则可能发生 CRLF 注入攻击。

补丁 该漏洞已通过提交 cfug/dio@927f79e 修复,并从 v5.0.0 版本开始包含此修复。

临时解决方法 将此修复提交拣选(cherry-pick)到您自己的代码分支中也可以解决此漏洞。

参考资料

严重程度 CVSS 总体评分: 7.5 CVSS v3.1 向量: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

CVSS v3 基础指标

  • 攻击向量(AV): 网络
  • 攻击复杂度(AC):
  • 所需权限(PR):
  • 用户交互(UI):
  • 影响范围(S): 未改变
  • 机密性影响(C):
  • 完整性影响(I):
  • 可用性影响(A):

弱点

  • CWE-93: CRLF 序列的不当中和(‘CRLF 注入’)
    • 产品将 CRLF(回车换行)用作特殊元素(例如,用于分隔行或记录),但未对输入中的 CRLF 序列进行中和或中和不正确。

其他信息

  • CVE ID: CVE-2021-31402
  • GHSA ID: GHSA-9324-jv53-9cc8
  • 源代码仓库: cfug/dio
  • 致谢:
    • licy183 (报告者)
    • AlexV525 (修复开发者)
    • set0x (报告者)
    • thomas-chauchefoin-sonarsource (分析员)

发布信息

  • 发布于: 2023年3月21日
  • 最后更新: 2023年10月5日
  • 来源: cfug/dio
  • 发布者: AlexV525
  • GitHub 已审阅:
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计