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

CVE-2026-42033 Axios原型污染致响应劫持漏洞

披露日期: 2026-04-24

漏洞信息

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

相关标签

原型污染AxiosCVE-2026-42033中间人攻击响应劫持

漏洞概述

Axios是一个流行的基于Promise的HTTP客户端。在1.15.1和0.31.1之前的版本中存在安全漏洞。当Object.prototype被同一进程中的其他依赖污染时,攻击者可以利用Axios未使用hasOwnProperty守卫读取属性的缺陷,静默拦截并修改应用接收的每一个JSON响应,甚至完全劫持底层HTTP传输,获取请求凭证、头部和正文。该漏洞利用需以原型污染为前提。

技术细节

该漏洞的核心在于Axios在处理配置对象和响应数据时,直接遍历或读取对象属性,而未通过`hasOwnProperty`进行过滤。若攻击者通过项目中的其他依赖库(如存在漏洞的深拷贝库或合并库)成功污染`Object.prototype`(例如注入`transformResponse`或`headers`属性),Axios在后续的HTTP请求处理流程中会将这些原型上的属性视为自身的配置。这允许攻击者篡改响应处理逻辑,注入恶意数据,或窃取敏感的HTTP认证信息,导致严重的信息泄露和完整性破坏。

攻击链分析

STEP 1
1. 原型污染注入
攻击者利用应用程序中其他不安全的依赖库,对Object.prototype进行污染,植入恶意的属性键(如transformResponse)。
STEP 2
2. 触发Axios请求
应用程序使用存在漏洞的Axios版本(< 1.15.1)发起HTTP请求。
STEP 3
3. 属性读取与利用
Axios在处理请求配置或响应时,未做属性检查直接读取对象,从而读取到被污染的原型链上的属性。
STEP 4
4. 劫持或篡改
攻击者的恶意逻辑被触发,导致JSON响应被篡改,或者HTTP传输层被劫持以窃取凭证。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// Proof of Concept for CVE-2026-42033 // Prerequisite: Prototype pollution must exist in the process // This simulates pollution from another dependency // 1. Pollute the prototype Object.prototype.transformResponse = [ (data) => { console.log('[PoC] Response intercepted via prototype pollution'); // Modify the response data data.hijacked = true; return data; } ]; const axios = require('axios'); // Vulnerable version < 1.15.1 // 2. Make a request axios.get('https://httpbin.org/get') .then(response => { // 3. Check if data was modified if (response.data.hijacked) { console.log('[PoC] Vulnerability confirmed: Response was modified.'); } else { console.log('[PoC] Vulnerability not triggered.'); } }) .catch(err => console.error(err));

影响范围

Axios < 1.15.1
Axios < 0.31.1

防御指南

临时缓解措施
如果无法立即升级Axios,应重点排查项目中的所有第三方依赖,消除可能导致Object.prototype被污染的源头。同时,可以使用Object.freeze(Object.prototype)来防止原型扩展(但这可能影响某些库的功能),或者在代码层面实施严格的属性访问检查。

参考链接

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