天融信关于Apache Struts2 S2-057命令执行漏洞预警

一、背景介绍

Apache Struts框架是一个一个基于 Java Servlets,JavaBeans, 和 JavaServer Pages (JSP)的Web应用框架的开源项目,Struts基于Model-View-Controller (MVC)的设计模式,可以用来构件复杂的Web应用。

它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使它的重用性和维护性更好。Struts框架是Jakarta工程的一部分,由Apache软件基金会管理

1.1漏洞描述

根据Apache 于2018年8月22日发布的安全公告表明,Struts2由于部分配置不当或可造成远程命令执行漏洞。

安全公告描述,有两种情况会照成命令执行:

1)当Struts2 的命名空间没有为基础xml配置中定义的结果设置值时,可能造成RCE,同时,其上部操作配置没有通配符namespace。

2)当使用url没有value和action设置的标签并且同时其上部动作配置没有或通配符时,命名空间的条件跟第一种情况相同。

1.2漏洞编号

CVE-2018-11776

1.3漏洞等级

高危

二、修复建议

2.1受影响版本

Struts 2.3 – Struts 2.3.34

Struts 2.5 – Struts 2.5.16

其它不受支持的Struts版本也可能受到影响

2.2解决方案

请尽快升级到Apache Struts版本2.3.35或2.5.17,该版本已解决可能存在的远程代码执行漏洞,同时它们还包含关键的整体主动安全性改进。

如果您暂时无法执行升级操作,可以尝试以下缓解方案。 验证已经为所有XML配置下定义的结果都设置了命名空间,同时验证对所有的JSP中的所有URL 标签中都设置了属性和Action,如果上层的动作配置没有设置命名空间或者通配符命名空间,也同样需要为他们设置。

Written by