天下漏洞,尽知其名
HIGH

CVE-2026-84894 moxygen MoQSession 释放后使用漏洞

影响远程对端可触发失效句柄使用,可能导致崩溃或内存破坏

AI 研判

CVE-2026-84894 是 moxygen 项目在 commit 004123dd24c3 之前版本中的一个高危漏洞。MoQSession::dataStreamReadLoop 在读取到 FIN 之后仍继续使用该流读取句柄,而在 proxygen 的 WebTransport API 中该句柄已因 FIN 而失效。远程对端可通过打开一个数据流、在其中指定未知的 track alias 并在同一次写入中携带 FIN 来触发该失效句柄的使用。

影响范围

moxygen

moxygen 项目 commit 004123dd24c3 之前的版本;具体受影响发行版本号暂无公开信息。

漏洞详情

该漏洞属于使用已失效句柄(use-after-invalidation)类问题。在 proxygen 的 WebTransport API 中,流读取到 FIN 后对应句柄即被置为无效,但 dataStreamReadLoop 未在读到 FIN 后停止使用该句柄。攻击者只需打开一个数据流,将 track alias 设为未知值,并在同一次写入中附带 FIN,即可让服务端在句柄失效后继续操作它。

利用条件与风险

利用前提是攻击者能够作为远程对端与目标建立 MoQ/WebTransport 连接并发送数据流,无需认证或用户交互。实战中可能导致目标进程崩溃或内存破坏,具体是否可进一步利用为代码执行取决于运行环境,暂无公开信息。

修复建议

官方修复方案为升级到 commit 004123dd24c3 或之后版本,确保读到 FIN 后不再使用已失效的流读取句柄。临时缓解措施包括限制不可信对端建立 MoQ/WebTransport 连接,或对相关服务进行隔离与监控,暂无其他公开缓解信息。

原始情报

In moxygen before commit 004123dd24c3, MoQSession::dataStreamReadLoop keeps using a stream read handle after reading a FIN, which invalidates the handle under proxygen’s WebTransport API. A remote peer can trigger the stale use by opening a data stream that names an unknown track alias and carries the FIN in the same write.