千瘡百孔的Struts2應(yīng)用又曝出存在新的高危遠程代碼執(zhí)行漏洞。該漏洞由lgtm.com的安全研究員匯報,編號為CVE-2017-9805,漏洞危害程度為高危(Critical)。當用戶使用帶有XStream程序的Struts REST插件來處理XML payloads時,可能會遭到遠程代碼執(zhí)行攻擊。
漏洞編號
CVE-2017-9805
漏洞作者
Man Yue Mo <mmo at semmle dot com>
影響版本
Struts 2.1.2 – Struts 2.3.33, Struts 2.5 – Struts 2.5.12
漏洞等級
嚴重
漏洞簡述
當啟用?Struts REST的XStream handler去反序列化處理XML請求,可能造成遠程代碼執(zhí)行漏洞。
漏洞描述
當啟用?Struts REST的XStream handler去反序列化處理一個沒有經(jīng)過任何類型過濾的XStream的實例,可能導(dǎo)致在處理XML時造成遠程代碼執(zhí)行漏洞。
向下兼容
由于Struts的某些默認限制,部分REST插件可能會停止工作。 此時請檢查可能導(dǎo)致停止工作接口,這些接口分別是:
org.apache.struts2.rest.handler.AllowedClasses
org.apache.struts2.rest.handler.AllowedClassNames
org.apache.struts2.rest.handler.XStreamPermissionProvider
漏洞POC
暫無
修復(fù)建議
- 升級Apache struts 2.5.13版本
- 如果系統(tǒng)沒有使用Struts REST插件,那么可以直接刪除Struts REST插件(struts2-rest-plugin*.jar),或者在配置文件中加入如下代碼,限制服務(wù)端文件的擴展名
<constant name=”struts.action.extension” value=”xhtml,,json” />
參考
https://cwiki.apache.org/confluence/display/WW/S2-052