CVE-2026-8161 (CVSS 7.5) - multiparty@4.2.3 and lower versions are vulnerable to denial of service via unca
CVE-2026-8161 (CVSS 7.5) - multiparty@4.2.3 and lower versions are vulnerable to denial of service via unca
📋 漏洞概述
pillarjs multiparty 4.2.3及更低版本因未对表单字段名做安全过滤,导致攻击者可通过原型污染触发未捕获异常,造成服务拒绝服务。
📋 基础信息
| 受影响版本 | pillarjs multiparty <= 4.2.3 |
| 漏洞类型 | 拒绝服务(Uncaught Exception) |
| CVSS | 7.5 · High |
| CVE | CVE-2026-8161 |
🔬 漏洞根因
multiparty解析multipart/form-data请求时,未对字段名进行严格校验。攻击者可构造字段名如__proto__、constructor、toString,这些名称会与Object.prototype的继承属性冲突。解析器在尝试对字段值调用.push()方法时,实际作用于原型属性而非数组,由于原型属性值不是数组,导致TypeError异常且未被捕获,直接终止进程。
🎯 攻击场景
1. 攻击者定位使用multiparty库处理文件上传的Web服务。2. 攻击者构造一个multipart/form-data POST请求,其中包含一个名为__proto__的字段,并赋予任意值(如数组)。3. 服务端multiparty解析该请求时,尝试将字段值推入内部数组,但实际访问的是Object.prototype.__proto__,该属性值为Object.prototype本身,并非数组。4. 调用.push()操作时抛出TypeError,且异常未被捕获,导致Node.js进程崩溃退出。5. 服务不可用,后续请求无法处理,完成拒绝服务攻击。
💥 漏洞影响
成功利用该漏洞可导致Node.js服务进程因未捕获异常而崩溃,造成拒绝服务(DoS)。任何依赖multiparty解析用户上传multipart数据的Web应用均受影响,可能导致整个服务中断,影响业务连续性。
🛡️ 修复建议
升级到multiparty@4.3.0或更高版本。临时缓解措施:在应用层对请求中的字段名进行白名单过滤,拒绝包含__proto__、constructor、toString等危险字段名的请求;或在应用层添加全局异常处理器捕获未捕获异常,将进程崩溃降级为错误响应。
📎 参考链接
- https://nvd.nist.gov/vuln/detail/CVE-2026-8161
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-8161
- 原始来源(NVD-Latest)
🚨 威胁评估
| 📈 EPSS 利用概率 | 低 (0.0%) (高于 12.4% 的漏洞) |
| 🚨 CISA KEV | 未被已知利用 |
| 🔧 公开 PoC | 1 个公开 PoC 仓库 |
⚠️ 本文由漏洞情报系统自动生成,仅供安全研究与防御参考。生成时间: 2026-05-14 08:05 | 来源: NVD-Latest