CVE-2026-102557 libsoup WebSocket 消息重组堆破坏漏洞
影响远程对端可触发堆破坏或进程崩溃
libsoup 在将分片的 WebSocket 消息重组进 GByteArray 时,未对消息总大小与底层缓冲区类型上限做充分校验。远程对端可发送特定分片,使长度发生截断而实现仍按完整长度处理,导致堆内存破坏或崩溃。
影响范围
受影响版本范围暂无公开信息,涉及使用 libsoup 进行 WebSocket 通信的场景。
漏洞详情
漏洞类型为整数截断引发的堆缓冲区溢出。GByteArray 的长度字段存在上限,重组超大消息时长度被截断,但后续操作仍使用未截断的原始长度,造成越界写入。远程攻击者只需作为 WebSocket 对端发送精心构造的分片消息即可触发。
利用条件与风险
利用前提是目标使用 libsoup 建立 WebSocket 连接并接收对端消息,无需认证即可远程触发,可导致拒绝服务,并存在进一步内存破坏利用的可能。
修复建议
建议升级到修复该问题的 libsoup 版本,具体版本号暂无公开信息;临时缓解可限制 WebSocket 消息大小或避免连接不可信对端。
A flaw was found in libsoup. When reassembling fragmented WebSocket messages into a GByteArray, libsoup did not adequately cap total message size against the limits of the underlying buffer type. A remote peer could send fragments that caused size truncation while the implementation still used the full length, leading to heap corruption or a crash.