HTTP/2 Server 多个回绝服务缝隙安全公告

颁布功夫 2019-08-14

? 缝隙编号和级别


CVE编号:CVE-2019-9511,危险级别:高危,CVSS分值:官方未评定
CVE编号:CVE-2019-9512,危险级别:高危,CVSS分值:官方未评定
CVE编号:CVE-2019-9513,危险级别:高危,CVSS分值:官方未评定
CVE编号:CVE-2019-9514,危险级别:高危,CVSS分值:官方未评定
CVE编号:CVE-2019-9515,危险级别:高危,CVSS分值:官方未评定
CVE编号:CVE-2019-9516,危险级别:高危,CVSS分值:官方未评定
CVE编号:CVE-2019-9517,危险级别:高危,CVSS分值:官方未评定
CVE编号:CVE-2019-9518,危险级别:高危,CVSS分值:官方未评定


? 影响版本


受影响的版本


合用于HTTP/2和谈


? 缝隙概述


HTTP/2(Hypertext Transfer Protocol Version 2)无疑是下一代互联网加快技术的基石与方向,自诞生以来经历了00~17 共 18 版草案,目前,已经占有了明确的RFC尺度:RFC 7540和RFC 7541。 目前支持 HTTP/2 的浏览器有 Chrome 41+、Firefox 36+、Safari 9+、Windows 10 上的 IE 11 和 Edge。服务器方面则有 F5、H2O、nghttp2 等数十种选择,各类说话实现的都有。


HTTP/2实现过程中容易受到各类回绝服务(DoS)攻击,具体如下:


CVE-2019-9511

攻击者通过多个流从指定资源要求大量数据。它们把持窗口大幼和流优先级以强造服务器以1字节块的大局对数据进行列队。凭据此数据列队的效能,这可能会亏损过多的CPU,内存或两者,从而可能导致回绝服务。


CVE-2019-9512

攻击者向HTTP/2对等体发送陆续ping,导致对等体构建内部响应队列。凭据此数据列队的效能,这可能会亏损过多的CPU,内存或两者,从而可能导致回绝服务。


CVE-2019-9513

攻击者创建多个要求流,并以一种导致优先级树大量流失的方式不休地扭转流的优先级。这可能会亏损过多的CPU,可能导致回绝服务。


CVE-2019-9514

攻击者打开多个流,并在每个流上发送一个无效要求,该要求应该从对等方要求RST_STREAM帧流。凭据对等体若何对RST_STREAM帧进行列队,这会亏损过多的内存,CPU或两者,从而可能导致回绝服务。


CVE-2019-9515

攻击者向对等体发送SETTINGS帧流。由于RFC要求对等体回复每个SETTINGS帧有一个确认,因而空的SETTINGS帧在行为上与ping险些一样。凭据此数据列队的效能,这可能会亏损过多的CPU,内存或两者,从而可能导致回绝服务。


CVE-2019-9516

攻击者发送带有0长度头名称和0长度头部值的头部流,可选地将霍夫曼编码为1字节或更大的头部。某些实现为这些头分配内存并使分配维持活动直到会话终止。这可能会亏损过多的内存,可能导致回绝服务。


CVE-2019-9517

攻击者打开HTTP/2窗口,以便对等体能够无限度地发送。但是,它们会使TCP窗口关关,因而对等体现实上无法在线路上写入(很多)字节。而后,攻击者发送大量响应对象的要求流,凭据服务器对响应进行列队的方式,这可能会亏损过多的内存,CPU或两者,从而可能导致回绝服务。


CVE-2019-9518

攻击者发送一个拥有空载荷且没有流末尾标志的帧流。这些帧可所以DATA,HEADERS,CONTINUATION和/或PUSH_PROMISE。对等体破费功夫处置每个帧与攻击带宽不成比例。这可能会亏损过多的CPU,可能导致回绝服务。


? 缝隙验证


暂无POC/EXP。


? 建复建议


Microsoft:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-9513
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-9512
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-9511

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-9518;


Nginx:

http://nginx.org/en/CHANGES


Apple:

https://support.apple.com/en-us/HT210436


? 参考链接


https://kb.cert.org/vuls/id/605641/