總機:020-87516161 傳真:020-87516161-8040
地址:廣州市天河北路898號信源大廈3206-3211室 郵編:510660
安全服務(wù) > 安全公告 > 關(guān)于Apache Struts2 REST插件存在S2-052遠程代碼執(zhí)行漏洞的安全公告
安全公告編號:CNTA-2017-0063
北京時間9月5日晚,國家信息安全漏洞共享平臺(CNVD)收錄了Apache struts2 S2-052遠程代碼執(zhí)行漏洞(CNVD-2017-25267,對應(yīng)CVE-2017-9805),攻擊者可以通過構(gòu)造惡意XML請求在目標服務(wù)器上遠程執(zhí)行任意代碼,獲得服務(wù)器權(quán)限。目前相關(guān)利用代碼已在互聯(lián)網(wǎng)公開并傳播,有可能導(dǎo)致互聯(lián)網(wǎng)上大規(guī)模的攻擊嘗試。
一、漏洞情況分析
Struts2是第二代基于Model-View-Controller(MVC)模型的java企業(yè)級web應(yīng)用框架,并成為國內(nèi)外較為流行的容器軟件中間件。Xstream是一種OXMapping技術(shù),是用來處理XML文件序列化的框架,在將JavaBean序列化或?qū)ML文件反序列化的時候,不需要其它輔助類和映射文件。Xstream也可以將JavaBean序列化成JSON或反序列化,使用非常方便。
Struts2的REST插件使用帶有XStream例程的XStreamHandler執(zhí)行反序列化操作,但在反序列化過程中未做任何類型過濾,導(dǎo)致攻擊者可能在反序列化XML負載時構(gòu)造惡意的XML內(nèi)容執(zhí)行任意代碼。
CNVD對漏洞的綜合評級均為“高危”。
二、漏洞影響范圍
根據(jù)官方公告情況,漏洞影響Apache Struts2.5至Struts?2.5.12版本。參考長亭公司的核驗結(jié)果,Apache Struts 2.3.33版本也受到漏洞影響且官方網(wǎng)站未發(fā)布對應(yīng)版本的更新。綜合評估認為,雖然攻擊原理通用,但由于目前攻擊利用過程存在遠程指令執(zhí)行回顯的技術(shù)限制以及需要有REST插件應(yīng)用的前提條件,本次S2-052漏洞威脅達不到S2-045/046漏洞的威脅級別。
三、漏洞處置建議
根據(jù)官方發(fā)布的安全更新,建議升級到ApacheStruts版本2.5.13,下載地址:https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.13。
此外,可以采用如下臨時解決方案:
1、如果非網(wǎng)站功能必需,建議刪除StrutsREST插件,或僅用于服務(wù)器普通頁面和JSONs:
<constantname="struts.action.extension" value="xhtml,,json" />
2、限制服務(wù)端擴展類型,刪除XML支持。
注:兼容問題
由于可用類的默認限制,某些REST操作可能會影響到正常的網(wǎng)站功能。在這種情況下,請調(diào)查介紹的新接口以允許每個操作定義類限制,這些接口是:
org.apache.struts2.rest.handler.AllowedClasses
org.apache.struts2.rest.handler.AllowedClassNames
org.apache.struts2.rest.handler.XStreamPermissionProvider
附:參考鏈接:
https://cwiki.apache.org/confluence/display/WW/S2-052
http://www.cnvd.org.cn/flaw/show/CNVD-2017-25267
本公告在編寫過程中重點參考了CNVD技術(shù)組成員單位啟明星辰公司、杭州安恒公司、綠盟科技公司、知道創(chuàng)宇公司、奇虎360公司的公開分析結(jié)果。