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

(作者: 文章來源:CNVD 發布日期:2017-03-07 瀏覽數:)


安全公告編號:CNTA-2017-0016
    3月7日,國家信息安全漏洞共享平臺(CNVD)收錄了杭州安恒信息技術有限公司發現的Apache struts2 S2-045遠程代碼執行漏洞(CNVD-2017-02474,對應CVE-2017-5638),遠程攻擊者利用該漏洞可直接取得網站服務器控制權。由該應用較為廣泛,且攻擊利用代碼已經公開,已導致互聯網上大規模攻擊的出現。
 

一、漏洞情況分析

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

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

    CNVD對漏洞的綜合評級均為“高危”。由于struts 2.3.5之前的版本存在S2-016漏洞,因此有較多升級后的Apache struts2的版本為2.3.5及以上版本,極有可能受到漏洞的影響。

二、漏洞影響范圍

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

三、漏洞處置建議

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

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

    在向服務器發出的http請求報文中,修改Content-Type字段:

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

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

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

    CNCERT/CNVD已著手組織國內安全企業協同開展相關檢測和攻擊監測相關工作,后續將再次匯總處置工作情況。

附:參考鏈接:

https://cwiki.apache.org/confluence/display/WW/S2-045

http://www.cnvd.org.cn/flaw/show/CNVD-2017-02474

168彩票网