2017年3月7日,Apache官网公布了一起重大的漏洞CVE-2017-5638,该漏洞存在于Apache Struts2框架中,通过恶意构造的Content-Type头可以进行远程代码执行,进而导致服务器被攻击者完全控制。该漏洞危害性极高,全球各大安全机构、媒体和企业纷纷嗅到了风险,加紧部署安全措施,以防被利用该漏洞进行攻击。
漏洞详情
1. 该漏洞的根本原因在于,由于Struts在处理Content-Type头中的正则表达式时存在漏洞,可以使攻击者在发送恶意请求时,通过Content-Type头的manipulate参数实现远程代码执行漏洞;
2. 当用户使用Struts2框架处理一些不合法的请求时,Struts2会根据Content-Type头中给出的boundary参数,将请求的 payload 分割成不同的部分处理。而在该场景中,攻击者可以使用恶意的Content-Type头来构造相应的payload,在服务端执行任意代码;
3. 该漏洞的攻击面极广,理论上所有使用Struts2框架的应用都可能受到攻击。
安全建议
1. 官方已在2017年3月8日发布修复版本Struts 2.3.32和Struts 2.5.10.1,建议企业及时升级;
2. 对于无法立即升级的企业,建议在Apache Struts Filter或前置WAF中,对Content-Type头进行过滤,防止恶意攻击;
3. 合理使用输入合法性验证、输入过滤、unicode转换做好输入项防范工作,尽可能的防止漏洞注入;
4. 强化安全意识教育,提高员工安全意识,避免引入安全隐患和不必要的风险;
总结
由于CVE-2017-5638的危害性极强,企业和安全机构需要理性看待此次漏洞,充分认识安全风险,并及时采取相应的安全措施以保证自身系统安全。因此,建议各个企业在日常运维中,加强对系统安全方面的关注,及时了解漏洞情况,提高安全响应能力,保护企业信息资产的安全。