總機:020-87516161 傳真:020-87516161-8040
地址:廣州市天河北路898號信源大廈3206-3211室 郵編:510660
安全服務(wù) > 安全公告 > Microsoft發(fā)布2018年6月安全更新
2018年8月22日,國家信息安全漏洞共享平臺(CNVD)收錄了Apache Struts2 S2-057遠程代碼執(zhí)行漏洞(CNVD-2018-15894,對應(yīng)CVE-2018-11776)。攻擊者利用該漏洞,可在未授權(quán)的情況下遠程執(zhí)行代碼。目前,漏洞驗證腳本尚未公開,廠商已發(fā)布升級版本修復(fù)此漏洞。
一、漏洞情況分析
Struts2是第二代基于Model-View-Controller(MVC)模型的java企業(yè)級web應(yīng)用框架,成為國內(nèi)外較為流行的容器軟件中間件。
2018年8月22日,Apache Strust2發(fā)布最新安全公告,Apache Struts2存在遠程代碼執(zhí)行的高危漏洞(CVE-2018-11776),該漏洞由Semmle Security Research team的安全研究員Man YueMo發(fā)現(xiàn)。該漏洞是由于在Struts2開發(fā)框架中使用namespace功能定義XML配置時,namespace值未被設(shè)置且在上層動作配置(Action Configuration)中未設(shè)置或用通配符namespace,可能導(dǎo)致遠程代碼執(zhí)行。同理,url標簽未設(shè)置value和action值且上層動作未設(shè)置或用通配符namespace時也可能導(dǎo)致遠程代碼執(zhí)行。
上述漏洞存在的代碼問題位于DefaultActionMapper這個類的parseNameAndNamespace方法里。
當alwaysSelectFullNamespace被設(shè)置為true時,namespace的值從uri中獲取,由此可知uri是可控的,所以這就直接導(dǎo)致了namespace可控。最終會調(diào)用TextParseUtil.translateVariables方法解析Ognl語句。
將namespace污染為$(2333+2333),可成功帶入函數(shù)并執(zhí)行。
CNVD對該漏洞的綜合評級為“高危”。
二、漏洞影響范圍
目前,漏洞影響的產(chǎn)品版本包括但不限于:
Struts 2.3-2.3.34
Struts 2.5-2.5.16
三、漏洞處置建議
目前,Apache公司已發(fā)布了新版本(Struts 2.3.35或Struts 2.5.17)修復(fù)了該漏洞,CNVD建議用戶及時升級最新版本:
https://cwiki.apache.org/confluence/display/WW/S2-057
暫無法及時更新的用戶,可采用如下臨時解決方案:
當上層動作配置中未設(shè)置或使用通配符namespace時,驗證所有XML配置中的namespace,同時在JSP中驗證所有url標簽的value和action,確保上述namespace、value和action值均不可控。
附:參考鏈接: