Axios 1.15.2补丁绕过:原型污染导致Proxy-Authorization头注入漏洞分析
Axios 1.15.2原型污染补丁绕过漏洞(CVE-2026-44489)分析:utils.merge()创建嵌套对象仍继承Object.prototype,setProxy()未做hasOwnProperty检查,可导致Proxy-Authorization头注入。影响所有使用代理配置的HTTP请求,需升级至1.15.3修复。
🔓 Medium 漏洞利用
安全研究人员发现Axios 1.15.2版本对原型污染漏洞的修复不完整,通过utils.merge()创建的嵌套对象仍继承Object.prototype,攻击者可利用原型污染向所有经过代理的HTTP请求中注入恶意Proxy-Authorization头,实现身份劫持或日志污染。
来源:OSV | 2026-05-29 | 原文链接
🔍 关键发现
- Axios 1.15.2的Object.create(null)修复仅保护顶层config对象,但utils.merge()创建嵌套对象时仍使用普通{},导致原型链污染可穿透。
- setProxy()函数在读取proxy.username和proxy.auth时未使用hasOwnProperty检查,从原型链继承的污染属性会被用于构造Proxy-Authorization头。
- 该漏洞需要两个前置条件:应用程序依赖中存在原型污染漏洞,且开发者显式配置了config.proxy。
⚔️ 攻击链分析
1. 攻击者通过应用依赖链中的其他漏洞触发原型污染,设置Object.prototype.username和Object.prototype.password为恶意值。 2. 开发者配置proxy对象(如{host:'proxy.corp', port:8080}),mergeConfig()通过utils.merge()创建新普通对象,该对象继承被污染的Object.prototype。 3. setProxy()读取proxy.username(从原型链获取)为真,构造auth字符串并Base64编码,注入到所有经代理的HTTP请求的Proxy-Authorization头中。
🚩 失陷指标 (IOC)
HTTP请求头中出现非预期的Proxy-Authorization: Basic ...代理服务器日志中出现异常的认证凭据(如attacker:stolen-creds)
🛡️ 缓解建议
- ✅ 立即升级Axios至1.15.3或更高版本,该版本已修复utils.merge()中的原型污染问题。
- ✅ 在应用程序中实施严格的对象属性检查,如使用Object.hasOwn()或hasOwnProperty()确保只读取自有属性。
- ✅ 审查并加固所有上游依赖,防止任何组件引入原型污染漏洞。
涉及漏洞:["CVE-2026-44489"]
⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。
🤖 常见问题解答(FAQ)
❓ 该漏洞影响哪些版本的Axios?
主要影响Axios 1.15.2版本,1.15.1也可能受影响。1.15.3及以上版本已修复。
❓ 攻击者如何触发原型污染?
需要应用程序依赖树中存在其他漏洞(如JSON.parse、lodash.merge等)允许攻击者设置Object.prototype上的属性。
❓ 漏洞的实际危害是什么?
攻击者可在所有经代理的请求中注入伪造的Proxy-Authorization头,可能绕过代理认证、污染日志或导致请求被代理拒绝。