漏洞概述 该漏洞涉及HTTP/2协议中的一个安全问题,具体表现为恶意HTTP/2服务器可以通过发送大量PUSH_PROMISE帧来耗尽客户端内存。每个PUSH_PROMISE帧会被插入到 中,即使没有查询 ,该映射也会无限增长,直到连接关闭。 影响范围 受影响组件:HTTP/2客户端实现。 影响程度:可能导致客户端内存耗尽,进而影响客户端的正常运行。 修复方案 1. 限制PUSH_PROMISE帧数量:在承诺时间限制内,拒绝超过 限制的PUSH_PROMISE帧。 2. 同步HPACK解码表:即使流被拒绝,也要确保HPACK解码表与服务器同步。 POC代码 以下是修复后的关键代码片段: 以上代码展示了如何限制PUSH_PROMISE帧的数量,并在超过限制时拒绝这些帧,同时确保HPACK解码表的同步。