CVE-2026-91096 proxygen 释放后使用漏洞
影响攻击者可触发释放后使用,可能导致进程崩溃或远程代码执行
Proxygen 是 Meta 开源的 C++ HTTP 库,其中 WebTransport 实现存在释放后使用(use-after-free)缺陷。在销毁已关闭的流之前,terminateSessionStreams(旧版本为 destroy)未注销其读回调,导致传输层可能调用已被释放的回调。
影响范围
Proxygen v2024.10.28.00 至 v2026.09.28.00;v2025.08.18.00 之前的版本对应函数名为 WebTransportImpl::destroy。
漏洞详情
漏洞类型为释放后使用(CWE-416)。成因是 WebTransportImpl::terminateSessionStreams 在销毁已不再打开的流时,未先注销该流注册的读回调,回调对象随流一起被释放。之后传输层仍可能触发该读回调,访问已释放内存,造成内存破坏。
利用条件与风险
利用前提是攻击者能通过 WebTransport 会话触发流关闭并促使传输层继续调用读回调,通常需可访问相关服务。实战中可导致服务崩溃,若内存布局可控则存在远程代码执行可能。
修复建议
建议升级至 v2026.09.28.00 或更高版本;暂无公开的临时缓解措施,可关注官方后续公告。
In proxygen from v2024.10.28.00 until v2026.09.28.00, WebTransportImpl::terminateSessionStreams (WebTransportImpl::destroy in releases before v2025.08.18.00) failed to unregister read callbacks for streams that were no longer open before destroying them. The transport could then invoke a read callback that had been freed.