释放双眼,带上耳机,听听看~!
Node v12.8.1 (Current) 已经发布,Node.js 和 其他 HTTP/2 的实现,已被发现易受拒绝服务攻击,该版主要修复存在漏洞:
- CVE-2019-9511 “Data Dribble”:攻击者通过多个流请求来自指定资源的大量数据。它们操纵窗口大小和流优先级,迫使服务器以 1 字节块对数据进行排队。这依赖数据排队的效率,可能会消耗过多的 CPU、内存,导致拒绝服务。
- CVE-2019-9512 “Ping Flood”:攻击者不断向 HTTP/2 对等点发送 ping,导致对等方构建内部响应队列。它依赖数据排队的效率,可能会消耗过多的 CPU、内存,导致拒绝服务。
- CVE-2019-9513 “Resource Loop”:攻击者创建多个请求流,并不断地调整流的优先级,从而导致优先级树的混乱。这会消耗过多的 CPU,可能导致拒绝服务。
- CVE-2019-9514 “Reset Flood”:攻击者打开多个流,并在每个流上发送无效请求,请求来自对等方的 RST_Flow 帧流。这依赖对等方如何对 RST_Flow 帧进行排队,可能会消耗过多的内存、CPU,导致拒绝服务。
- CVE-2019-9515 “Settings Flood”:攻击者向对等方发送设置帧流。由于 RFC 要求对等方回复每个设置帧有一个确认,空设置帧在行为上几乎等同于ping。这取决于数据排队的效率,可能会消耗过多的 CPU、内存,导致拒绝服务。
- CVE-2019-9516 “0-Length Headers Leak”: 攻击者发送具有 0 长度标头名称和 0 长度标头值的头流,还可以选择将 Huffman 编码为 1 字节或更高的标头。一些实现为这些头分配内存,并将分配保持在活动状态直到会话结束。这会消耗过多的内存,可能导致拒绝服务。
- CVE-2019-9517 “Internal Data Buffering”: 攻击者打开 HTTP/2 窗口,以便对等方可以不受约束地发送;但是,他们将 TCP 窗口关闭,因此对等方实际上无法在线路上写入(许多)字节。然后,攻击者发送针对大型响应对象的请求流。根据服务器如何对响应进行排队,这可能会消耗过多的内存、CPU,从而可能导致拒绝服务。
- CVE-2019-9518 “Empty Frames Flood”: 攻击者发送带有空有效负载且没有流结束标志的帧流。这些框架可以是 DATA、HEADERS、CONTINUATION 或 PUSH_BORY。对等方花费时间处理与攻击带宽不成比例的每一帧。这会消耗过多的 CPU,可能导致拒绝服务。
详情见发布说明: