CVE-2026-35515Nest是一个用于构建可扩展Node.js服务端应用程序的框架。在11.1.18版本之前,SseStream._transform()方法在处理Server-Sent Events (SSE)文本协议输出时,直接将message.type和message.id插入输出流,且未对换行符(\r, \n)进行清理。由于SSE协议将\r和\n视为字段分隔符,将\n\n视为事件边界,攻击者若能通过上游数据源影响这些字段,即可注入任意SSE事件、伪造事件类型并破坏重连状态。
该漏洞位于Nest框架的SseStream类中。在受影响版本中,_transform方法负责将消息对象转换为SSE协议文本流。实现过程中,代码直接将外部可控的message.type和message.id字段拼接到输出字符串,忽略了SSE协议对换行符的特殊处理。SSE协议规定,\r和\n用于分隔字段,而\n\n用于分隔不同的独立事件。攻击者可以通过控制上游数据,在type或id字段中注入恶意的换行符序列(例如\ndata: injected\n\n)。当SseStream处理此数据时,解析器会将注入的内容误认为是新的事件,从而导致SSE消息伪造。这不仅可能导致客户端接收到错误数据,还可能通过操纵Last-Event-ID字段干扰重连逻辑,造成客户端状态异常。