CVE-2026-8159multiparty 是一个 Node.js 中常用的用于解析 multipart/form-data 数据的库。在 4.2.3 及更低版本中,该组件存在严重的安全漏洞,被归类为正则表达式拒绝服务。攻击者可以通过发送特制的 multipart 上传请求,在 Content-Disposition 头部的 filename 参数中注入恶意构造的长字符串。这将触发解析器内部正则表达式的回溯机制,导致 CPU 资源被长时间占用,进而阻塞 Node.js 的事件循环。由于 Node.js 的单线程特性,这种阻塞会导致整个服务无法响应其他请求,从而实现拒绝服务攻击。该漏洞攻击门槛低,无需认证即可通过网络发起攻击,对服务可用性造成严重影响。
该漏洞的根本原因在于 multiparty 库在处理 HTTP multipart 请求时,用于解析 Content-Disposition 头部中 filename 参数的正则表达式存在设计缺陷,容易受到回溯攻击的影响。正则表达式引擎在处理某些特定的字符串模式时,会尝试大量的匹配路径组合,这种计算复杂度会随着输入长度的增加呈指数级增长。
攻击者无需特殊的用户权限,只需向服务器发送一个包含恶意 filename 的 HTTP POST 请求即可。根据漏洞描述,攻击者仅需构造一个大约 8KB 大小的头部值即可触发漏洞。当服务器端使用受影响版本的 multiparty 解析此请求时,正则匹配过程会消耗极长的 CPU 时间(可能长达数秒)。
在 Node.js 的运行环境中,JavaScript 代码执行在单线程的事件循环上。如果正则匹配操作耗时过长,就会完全阻塞事件循环,导致服务器无法处理新的连接或请求,造成服务暂时或永久性的拒绝服务。虽然该漏洞主要影响可用性(CVSS A:H),对机密性(C:N)和完整性(I:N)没有直接影响,但在高并发场景下,其对业务连续性的破坏是巨大的。