拒絕服務是網絡Web服務器常見的漏洞之一,這可能是安全由于超長URL或者畸形HTTP Header等原因引起的。Web服務器在處理這些請求時如果方式不當,研究就會導致出錯終止或掛起。中心最近,發現服務CVE-2020-27223披露在Eclipse Foundation中廣泛使用的器存Jetty Web服務器拒絕服務漏洞。Eclipse Foundation是漏洞管理和運營Eclipse開源項目的基金會。
概述
新思科技網絡安全研究中心(CyRC)研究人員發現了CVE-2020-27223漏洞,新思即Eclipse Jetty中的科技拒絕服務漏洞。Eclipse Jetty是網絡一種廣泛使用的開源Web服務器和Servlet容器。根據Eclipse Foundation網站,安全“ Jetty廣泛應用于各種項目和產品,研究無論是中心開發階段還是生產階段。Jetty易于嵌入到設備、工具、框架、應用程序服務器和現代云服務中,長期以來一直受到開發人員的青睞。”
當Jetty處理包含帶有大量質量因子參數(Accept請求頭中的q值)的Accept請求頭的請求時,CPU使用率較高,服務器可能會進入拒絕服務狀態。新思科技研究人員認為,這是由于在org.eclipse.jetty.http.QuotedQualityCSV類的sort方法發現的漏洞導致:
Jetty中唯一可以觸發此行為的功能是:
· 默認錯誤處理–帶QuotedQualityCSV的Accept請求頭被用來確定要發回客戶端的內容類型(html、文本、json和xml等)
· StatisticsServlet –使用帶有QuotedQualityCSV的Accept請求頭被用來確定發回客戶端的內容類型(xml、json、text、html等)
· HttpServletRequest.getLocale()–將 Accept-Language請求頭與QuotedQualityCSV一起使用,以確定在此調用中返回哪種“首選”語言
· HttpservletRequest.getLocales()–與上面類似,但是根據Accept-Language請求頭上的質量值返回一個有序的語言環境列表
· DefaultServlet –使用帶有QuotedQualityCSV的 Accept-Encoding請求頭以確定應將哪種預壓縮內容以靜態內容(與Web應用程序中的url模式不匹配的內容)發回
當服務器遇到排序項數量足夠大且q參數中的值足夠分散多樣化的請求時,排序數組會導致CPU使用率激增。新思科技研究人員沒有觀察到由此而導致的內存泄漏或崩潰。但是,服務器可能需要幾分鐘來處理單個請求,該請求的大小在幾十KB范圍內。研究人員觀察到請求大小與CPU使用時間之間呈指數關系。
受影響的軟件
· Eclipse Jetty 9.4.6.v20170531 至9.4.36.v20210114版本
· Eclipse Jetty 10.0.0版本
· Eclipse Jetty 11.0.0版本
影響
CVSS 3.1 評分
Vector: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
評分5.3(中等)
漏洞可利用性指標:
攻擊途徑Attack Vector (AV): N = Network 網絡
攻擊復雜程度Attack Complexity (AC): L = Low低
所需權限Privileges Required (PR): N = None 無
用戶交互User Interaction (UI): N = None 無
范圍Scope (S): U = Unchanged 無變化
影響指標
機密性影響Confidentiality Impact (C): N = None 無
完整性影響Integrity Impact (I): N = None 無
可用性影響Availability Impact (A): L = Low低
修復
強烈建議Jetty的軟件供應商和用戶升級到9.4.38.v20210224、10.0.1或11.0.1版本。
漏洞發現者
位于芬蘭奧盧的新思科技網絡安全研究中心的研究人員Matti Varanka和Tero Rontti
憑借Defensics® 模糊測試工具發現了此漏洞。
新思科技感謝Webtide(Jetty的維護團隊)及時地響應并修復此漏洞。
時間線
2021年1月5日:發現Jetty的漏洞
2021年2月10日:將漏洞信息反饋給Webtide(Jetty的維護團隊)
2021年2月11日:Webtide確認Jetty存在漏洞,歸為CVE-2020-27223
2021年2月22日:Webtide 發布修復
2021年2月26日:發布CVE-2020-27223修復建議