IPBUF安全漏洞报告
English
CVE-2026-42040 CVSS 3.7 低危

CVE-2026-42040 Axios空字节编码处理漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-42040
漏洞类型
输入验证错误
CVSS评分
3.7 低危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Axios

相关标签

Axios编码错误CVE-2026-42040HTTP请求走私输入验证

漏洞概述

Axios是一个流行的基于Promise的HTTP客户端。在1.15.1和0.31.1之前的版本中,该库的`lib/helpers/AxiosURLSearchParams.js`文件存在安全缺陷。其`encode()`函数中的字符映射表错误地将安全编码的空字节序列(%00)反向还原为原始的空字节字符。尽管标准的axios请求流程未受直接严重影响,但在特定场景下,此行为可能破坏HTTP协议规范,导致请求走私或绕过安全过滤器。官方已在后续版本中修复了该问题。

技术细节

该漏洞的核心在于Axios处理URL参数编码时的逻辑缺陷。在`AxiosURLSearchParams.js`组件中,`encode()`函数使用了一个字符映射表来辅助编码过程。正常情况下,JavaScript的`encodeURIComponent`函数会将空字节(`\x00`)正确转义为安全序列`%00`。然而,Axios的`charMap`中存在条目`'%00': '\x00'`,这导致已编码的安全字符串被反向解析回原始的空字节。这种非标准的解码行为违反了HTTP请求的编码规范。攻击者可利用此漏洞,通过构造包含`%00`的恶意参数,使得最终发出的HTTP请求中包含原始控制字符。这可能导致后端服务器解析异常,例如解析中断或字段截断,进而可能引发HTTP请求走私或CRLF注入攻击,从而绕过基于正则匹配的WAF或安全防护机制。

攻击链分析

STEP 1
侦察
识别目标应用程序是否使用了存在漏洞的Axios版本(< 1.15.1 或 < 0.31.1)。
STEP 2
载荷构造
攻击者构造包含特定编码字符(如%00)的恶意输入参数,旨在触发反向解码漏洞。
STEP 3
漏洞利用
向目标端点发送包含恶意参数的HTTP请求。Axios的encode函数将%00转换为原始空字节。
STEP 4
影响达成
后端服务器接收到包含原始空字节的请求,可能导致请求解析错误、请求走私或绕过安全检查。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-42040 // Target: Axios < 1.15.1 or < 0.31.1 const axios = require('axios'); // The vulnerability involves the encoding of null bytes // In vulnerable versions, passing '%00' in params might result in a raw null byte const params = { input: 'value%00injected' }; // Sending a request using the vulnerable library axios.post('http://localhost:8080/vuln-endpoint', null, { params }) .then(response => { console.log('Request sent successfully'); }) .catch(error => { console.error('Error:', error); }); // Mitigation: Upgrade to version 1.15.1 or 0.31.1 and above

影响范围

Axios < 1.15.1
Axios < 0.31.1

防御指南

临时缓解措施
如果无法立即升级,建议在应用网关或WAF层面实施严格的输入验证,过滤或拦截包含%00序列的请求参数。同时,确保后端服务器能够正确处理非标准编码的请求,防止因解析异常导致的安全绕过。

参考链接

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