近日,安恒信息安全研究院WEBIN实验室高级安全研究员nike.zheng发现著名J2EE框架——Struts2存在远程代码执行的漏洞,Struts2官方已经确认该漏洞(S2-045,S2-046),并定级为高危漏洞。S2-046(CNNVD编号:CNNVD-201703-152; CVE编号:CVE-2017-5638)
漏洞的报告者来自三家:qualcomm(高通)、dbappsecurity(杭州安恒)、HPE(惠普企业)。
漏洞概要
Apache Struts 2 2.3.32之前的2 2.3.x版本和2.5.10.1之前的2.5.x版本中的Jakarta Multipart解析器存在安全漏洞,该漏洞源于程序没有正确处理文件上传。攻击者可以通过构造HTTP请求头中的Content-Type值可能造成远程任意代码执行。
受影响的软件版本为:Struts 2.3.5 - Struts2.3.31, Struts 2.5 - Struts 2.5.10
S2-045漏洞影响
攻击者可以通过构造HTTP请求头中的Content-Type值可能造成远程代码执行。
漏洞描述
使用Jakarta插件处理文件上传操作时可能导致远程代码执行漏洞。
S2-046漏洞影响(更新)
触发条件
上传文件的大小(由Content-Length头指定)大于Struts2允许的最大大小(2GB)。
header中的Content-Disposition中包含空字节。
文件名内容构造恶意的OGNL内容。