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/