漏洞概述 Axios HTTP/2 会话清理逻辑中存在状态损坏漏洞(State Corruption Vulnerability)。该拒绝服务(DoS)漏洞允许恶意服务器通过并发关闭会话来导致客户端进程崩溃。漏洞存在于 文件中的 方法内,具体表现为 session 清理逻辑在移除会话时存在控制流错误。 影响范围 受影响组件: - Http2Sessions 类,连接关闭处理程序中的会话清理。 受影响版本: axios < 1.13.2 前提条件: 客户端必须启用 HTTP/2 的 axios。 客户端必须连接到攻击者控制的 HTTP/2 服务器。 必须建立多个并发的 HTTP/2 会话。 服务器必须以精确的时间同时关闭所有会话。 修复方案 修复方案重构了控制流,使其在移除会话后立即返回,无论数组是否为空或仅移除一个元素。这防止了在修改后的数组上继续迭代,从而消除了状态损坏漏洞。 修复后的代码 (Fixed Code):** 利用代码 (PoC) 该漏洞的利用逻辑描述如下: 1. 设置一个恶意 HTTP/2 服务器,该服务器接受来自 axios 客户端的多个并发连接。 2. 与 axios 客户端建立多个并发的 HTTP/2 会话。 3. 以精确的时间同时关闭所有会话。 4. 有缺陷的清理逻辑尝试并发地迭代和修改 sessions 数组。 5. 这导致客户端访问无效的内存位置,从而导致进程崩溃。