IPBUF安全漏洞报告
English
CVE-2026-39865 CVSS 5.9 中危

CVE-2026-39865 Axios HTTP/2会话清理状态破坏漏洞

披露日期: 2026-04-08

漏洞信息

漏洞编号
CVE-2026-39865
漏洞类型
拒绝服务
CVSS评分
5.9 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Axios

相关标签

CVE-2026-39865Axios拒绝服务DoSHTTP/2状态破坏

漏洞概述

Axios是一个基于promise的HTTP客户端。在1.13.0至1.13.2之前的版本中,其HTTP/2会话清理逻辑存在状态破坏漏洞。该漏洞位于`lib/adapters/http.js`中的`Http2Sessions.getSession()`方法。攻击者可通过恶意服务器利用并发会话关闭,导致客户端进程崩溃。

技术细节

该漏洞的核心在于Axios库在处理HTTP/2连接时的会话清理机制存在设计缺陷。具体而言,在`lib/adapters/http.js`文件中的`Http2Sessions.getSession()`方法内,代码逻辑在从活跃会话数组中移除会话时未能正确处理并发情况。当恶意服务器在特定时机快速触发多个会话关闭操作时,清理逻辑中的控制流错误会导致内部状态发生破坏。攻击者可以通过搭建恶意的HTTP/2服务器,诱导使用易受攻击版本Axios的客户端发起请求。随后,服务器利用并发会话关闭序列触发该漏洞,导致客户端进程因状态异常而崩溃,从而实现拒绝服务攻击。此问题仅限于HTTP/2协议实现,攻击复杂度低,且无需用户交互。

攻击链分析

STEP 1
步骤1
攻击者搭建一个恶意的HTTP/2服务器,该服务器配置了特定的响应逻辑以触发并发会话关闭。
STEP 2
步骤2
受害者使用存在漏洞的Axios版本(1.13.0至1.13.1)向攻击者的服务器发起HTTP/2请求。
STEP 3
步骤3
恶意服务器在处理请求时,利用并发机制触发客户端的Http2Sessions.getSession()方法中的清理逻辑错误。
STEP 4
步骤4
Axios客户端进程因状态破坏而发生崩溃,导致服务不可用(DoS)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
const http2 = require('http2'); const fs = require('fs'); // Malicious server to trigger concurrent session closure const server = http2.createSecureServer({ key: fs.readFileSync('localhost-privkey.pem'), cert: fs.readFileSync('localhost-cert.pem') }); server.on('stream', (stream, headers) => { // Send response and close immediately to trigger cleanup logic stream.respond({ 'content-type': 'text/html', ':status': 200 }); stream.end('<h1>Hello</h1>'); // Simulate behavior that triggers the race condition in session cleanup stream.close(); }); server.listen(8443);

影响范围

Axios 1.13.0
Axios 1.13.1

防御指南

临时缓解措施
建议用户暂时禁用Axios的HTTP/2支持,强制使用HTTP/1.1协议进行通信,直到完成版本升级。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表