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