漏洞总结 漏洞概述 该漏洞涉及 WebSocket 协议中分帧消息(fragmented frames)的处理问题。具体表现为: 未对分帧消息的最大长度进行限制,可能导致拒绝服务(DoS)攻击。 未正确处理零长度的非终止帧(non-fin continuation frames),可能引发异常行为。 影响范围 所有使用 WebSocket 协议的服务端实现,尤其是未正确配置 的场景。 攻击者可以通过发送超大分帧消息或零长度非终止帧,导致服务端资源耗尽或崩溃。 修复方案 1. 定义最大分帧消息大小限制: - 新增配置项 ,默认值为 8,000,000 字节(8MB)。 - 在代码中强制校验分帧消息的大小,超出限制时拒绝连接。 2. 禁止零长度非终止帧: - 在接收分帧消息时,检查帧是否为零长度且非终止帧,若是则直接关闭连接。 3. 更新测试用例: - 添加针对上述修复的测试用例,确保漏洞被彻底修复。 POC 代码 以下是修复后的关键代码片段: 配置项定义 分帧消息大小校验 零长度非终止帧处理 测试用例