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