Dart HTTP 库 CRLF 注入漏洞详解 (CVE-2020-35669)

本文详细分析了Dart的http包在0.13.3之前版本中存在的CRLF头部注入漏洞(CVE-2020-35669),介绍了漏洞原理、影响范围及修复措施,涉及HTTP请求的构造与验证。

漏洞概述

CVE ID: CVE-2020-35669 GHSA ID: GHSA-4rgh-jx4f-qfcq 漏洞组件: Dart http 包(Pub) 影响版本: < 0.13.3 修复版本: 0.13.3 严重等级: 中等 (CVSS 3.1 评分: 6.1)

漏洞详情

在 Dart http 包的 0.13.3 之前版本中,发现了一个安全问题。如果攻击者能够控制应用程序使用的 HTTP 方法,并且该应用程序直接使用 Request 对象,则可能通过 HTTP 头部注入实现 HTTP 请求中的 CRLF(回车换行)注入攻击。

该漏洞已在提交 abb2bb1 中通过验证请求方法得到修复。

漏洞影响

此漏洞属于 CWE-74 类别:下游组件输出中特殊元素的不当中和(注入)。具体来说,产品使用来自上游组件的外部影响输入来构造命令、数据结构或记录的全部或部分,但当其发送到下游组件时,未能中和或错误地中和了可能修改其解析或解释方式的特殊元素。

CVSS v3.1 基本指标详情:

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

参考资料

  1. NVD 漏洞详情页面

  2. HTTP 包更新日志

  3. 修复提交记录

  4. Pub 包更新日志

时间线

  • 发布时间 (NVD): 2020年12月24日
  • 发布于 GitHub Advisory Database: 2022年5月24日
  • 审核时间: 2022年8月4日
  • 最后更新: 2023年1月27日

来源代码

GitHub 仓库: dart-lang/http

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