CVE-2026-40879NestJS是一个用于构建Node.js服务端应用程序的框架。在11.1.19版本之前,当攻击者在一个TCP帧中发送许多小的、有效的JSON消息时,`handleData()`函数会针对每条消息进行一次递归调用,导致缓冲区在每次调用时收缩。由于`maxBufferSize`从未达到,调用栈反而溢出。大约47KB的payload足以触发RangeError,导致服务崩溃。该漏洞在11.1.19版本中已修复。
该漏洞源于NestJS底层处理数据流时的逻辑缺陷。当TCP帧内包含大量微小且有效的JSON消息时,解析器会递归调用`handleData()`函数。由于每次递归仅处理部分数据并收缩缓冲区,而不是检查累积大小,系统绕过了最大缓冲区大小的限制。这种深度递归导致调用栈迅速消耗,最终引发栈溢出错误(RangeError: Maximum call stack size exceeded)。攻击者无需认证,通过发送特制的网络数据包即可触发此漏洞,导致目标服务不可用。