S2-056漏洞發(fā)生于Apache Struts2的REST插件,當(dāng)使用XStream組件對(duì)XML格式的數(shù)據(jù)包進(jìn)行反序列化操作,且未對(duì)數(shù)據(jù)內(nèi)容進(jìn)行有效驗(yàn)證時(shí),攻擊者可通過提交惡意XML數(shù)據(jù)對(duì)應(yīng)用進(jìn)行遠(yuǎn)程DoS攻擊。
官方通告如下:
https://cwiki.apache.org/confluence/display/WW/S2-056
漏洞編號(hào)
CVE-2018-1327
受影響的版本
Struts 2.1.1 – Struts 2.5.14.1
不受影響的版本
Struts 2.5.16
解決方案
Apache Struts官方在新版本2.5.16版本中針對(duì)S2-056漏洞進(jìn)行了防護(hù),提供了基于Jackson組件的XML數(shù)據(jù)解析器JacksonXmlHandler,建議應(yīng)用Apache Struts2 REST插件的用戶排查框架版本是否受漏洞影響,及時(shí)升級(jí)框架并替換XML解析器,升級(jí)過程如下:
1.登錄到官網(wǎng)的下載頁面,下載Apache Struts 2.5.16,并升級(jí)應(yīng)用框架:http://struts.apache.org/download.cgi
2.除Struts 2框架依賴包外,還需要引入Jackson組件的相關(guān)依賴包,如:
3.在應(yīng)用系統(tǒng)的struts.xml配置文件中配置xml解析器為Struts 2.5.16版本提供的JacksonXmlHandler類。示例如下:
然后配置struts.properties文件中,使自定義的xml處理器覆蓋框架默認(rèn)解析器。示例如下: