1. 安全漏洞公告
2018年8月22日,Struts2官方公布最新的STRUTS2远程代码执行漏洞S2-057,在一定条件下,该漏洞允许攻击者远程执行代码,存在高危风险。
2. 漏洞相关描述
北京时间8月22日,Struts官方公开了漏洞S2-057(CVE-2018-11776)。该漏洞可能在两种情况下被触发:
当没有为底层xml配置中定义的结果设置namespace 值,并且其上部操作配置没有namespace或通配namespace时,可能构成 RCE攻击。
当使用没有 value和action集的url标签时,并且其上层操作配置没有或通配namespace时,也可能构成 RCE 攻击。
参考链接:
https://cwiki.apache.org/confluence/display/WW/S2-057
官方评级:严重
3. 漏洞影响范围
受影响版本:Struts 2.3 - Struts 2.3.34, Struts 2.5 - Struts 2.5.16
不受影响版本:Struts 2.3.35、Struts 2.5.17
4. 漏洞缓解措施
升级struts2 2.3.35 或者 struts2 2.5.17
下载链接:
http://mirrors.hust.edu.cn/apache/struts/2.3.35/struts-2.3.35-all.zip
http://mirrors.hust.edu.cn/apache/struts/2.5.17/struts-2.5.17-all.zip
5. 漏洞检测
此漏洞产生于低版本的Struts组件,当应用系统引入相关组件时,将存在被攻击者远程攻击的风险。建议由应用开发人员排查引入组件的版本是否处于受影响范围之内。
Windows系统查看Maven配置文件pom.xml中关于组件的版本:
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.34</version>
</dependency>
上述标红为当前Struts版本号。
Linux系统下可使用以下命令查找当前使用的struts2-core包,通过查看其文件名,判断当前版本:
命令:find / -name strts2-core-*.jar
查看返回结果中strts2-core-2.5.34.jar是否存在受影响版本号。
6. 参考文档
漏洞缓解说明(原文):
https://cwiki.apache.org/confluence/display/WW/S2-057?from=timeline&isappinstalled=0