關于Apache Struts2存在S2-045遠程代碼執行漏洞的安全公告

3月7日,國(guó)家信息安全漏洞共享平台(CNVD)收錄了杭州安恒信息技術有限公司發(fā)現的Apache struts2 S2-045遠程代碼執行漏洞(CNVD-2017-02474,對(duì)應CVE-2017-5638),遠程攻擊者利用該漏洞可直接取得網站服務器控制權。由該應用較爲廣泛,且攻擊利用代碼已經(jīng)公開(kāi),已導緻互聯網上大規模攻擊的出現。

一、漏洞情況分析

Struts2是第二代基于Model-View-Controller(MVC)模型的java企業級web應用框架,并成(chéng)爲當時國(guó)内外較爲流行的容器軟件中間件。jakarta是apache組織下的一套Java解決方案的開(kāi)源軟件的名稱,包括很多子項目。Struts就是jakarta的緊密關聯項目。

根據CNVD技術組成(chéng)員單位——杭州安恒信息技術有限公司提供的分析情況,基于Jakarta Multipart parser的文件上傳模塊在處理文件上傳(multipart)的請求時候對(duì)異常信息做了捕獲,并對(duì)異常信息做了OGNL表達式處理。但在在判斷content-type不正确的時候會抛出異常并且帶上Content-Type屬性值,可通過(guò)精心構造附帶OGNL表達的URL導緻遠程代碼執行。

CNVD對(duì)漏洞的綜合評級均爲“高危”。由于struts 2.3.5之前的版本存在S2-016漏洞,因此有較多升級後(hòu)的Apache struts2的版本爲2.3.5及以上版本,極有可能(néng)受到漏洞的影響。

二、漏洞影響範圍

受漏洞影響的版本爲:Struts2.3.5-Struts2.3.31, Struts2.5-Struts2.5.10。截至7日13時,互聯網上已經(jīng)公開(kāi)了漏洞的攻擊利用代碼,同時已有安全研究者通過(guò)CNVD網站、補天平台提交了多個受漏洞影響的省部級黨政機關、金融、能(néng)源、電信等行業單位以及知名企業門戶網站案例。根據CNVD秘書處抽樣(yàng)測試結果,互聯網上采用Apache Struts 2框架的網站(不區分Struts版本,樣(yàng)本集>500,覆蓋政府、高校、企業)受影響比例爲60.1%。

三、漏洞處置建議

Apache Struts官方已在發(fā)布的新的版本中修複了該漏洞。建議使用Jakarta Multipart parser模塊的用戶升級到Apache Struts版本2.3.32或2.5.10.1。除了升級struts版本外,爲有效防護漏洞攻擊,建議用戶采取主動檢測、網絡側防護的方法防範黑客攻擊:

(一)無害化檢測方法(該檢測方法由安恒公司提供):

在向(xiàng)服務器發(fā)出的http請求報文中,修改Content-Type字段:

Content-Type: %{#context[‘com.opensymphony.xwork2.dispatcher.HttpServletResponse’].addHeader(‘vul’,’vul’)}.multipart/form-data,如返回response報文中存在vul:vul字段項則表明存在漏洞。

(二)網絡側防護技術措施

建議在網絡防護設備上配置過(guò)濾包含如下#nike=’multipart/form-data’ 以及#container=#context[‘com.opensymphony.xwork2.ActionContext.container’ 字段串(及相關字符轉義形式)的URL請求。

CNCERT/CNVD已著(zhe)手組織國(guó)内安全企業協同開(kāi)展相關檢測和攻擊監測相關工作,後(hòu)續將(jiāng)再次彙總處置工作情況。

相關新聞