GRPC-Swift 服务器因可触发断言导致拒绝服务漏洞剖析

本文详细分析了 CVE-2022-24777 漏洞,该漏洞存在于 grpc-swift 库中,攻击者可通过发送特制的 GOAWAY 帧触发一个可到达的断言,导致服务器崩溃,从而实现拒绝服务攻击。

漏洞概述

CVE-2022-24777 是一个存在于 grpc-swift 服务器中的高严重性拒绝服务漏洞。攻击者可以通过发送特定序列的帧,触发一个可到达的断言,导致服务器崩溃。此攻击资源消耗极低,但对服务可用性影响巨大,会中断所有正在处理的连接和请求。

受影响版本与修复

  • 受影响的版本:所有低于 1.7.2 的 grpc-swift 版本。
  • 已修复的版本:1.7.2 及更高版本。 该漏洞的修复提交记录位于 grpc/grpc-swift@858f977,主要修正了处理 GOAWAY 帧时的相关状态处理逻辑。

漏洞详情

漏洞根源:漏洞源于处理 GOAWAY 帧时的逻辑错误。不正确的状态处理代码使得一个断言 (assert) 可以被外部输入触发。

攻击方式:攻击者可以构造并发送特定的帧序列(尤其是 GOAWAY 帧),以极低的资源消耗触发该断言。

影响:触发断言会导致服务器进程崩溃,进而造成完全的拒绝服务,所有进行中的连接和请求都会被丢弃。此漏洞对机密性和完整性没有影响,但严重影响了可用性。

发现方式:该漏洞是通过自动化模糊测试发现的。

相关标识与链接

  • CVE ID:CVE-2022-24777
  • GitHub 安全公告 ID:GHSA-r6ww-5963-7r95
  • NVD 详情页:https://nvd.nist.gov/vuln/detail/CVE-2022-24777
  • 源代码仓库:grpc/grpc-swift

安全评分与分类

  • CVSS 3.1 总体评分:7.5(高危)
  • CVSS 向量:AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
    • 攻击向量:网络
    • 攻击复杂度:低
    • 所需权限:无
    • 用户交互:无
    • 影响范围:未改变
    • 机密性影响:无
    • 完整性影响:无
    • 可用性影响:高
  • EPSS 评分:0.334%(未来30天内被利用的概率估算,处于第56百分位)
  • 弱点枚举:CWE-617(可到达的断言)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计