4月23日消息,近日安全研究人员指出Apache Struts2在漏洞公告S2-020里,在处理修复CVE-2014-0094的漏洞修补方案中存在漏洞,导致补丁被完全绕过。目前官方在GitHub上对该问题做出了修正。然而该修正公布后,安全人员很快发现,官方给出的补丁仍然存在漏洞,可被绕过。
加速乐也已率先升级了防御规则,目前加速乐可独家防御该漏洞,同时加速乐已经将相关信息同步给合作伙伴创宇云,目前使用创宇云主机已率先修复该漏洞,所有使用创宇云主机网站亦不受影响。
如果站长没有使用加速乐,可以使用以下方案自行修复:
修改struts源码
com.opensymphony.xwork2.interceptor.ParametersInterceptor
搜索下面方法:
public void setExcludeParams(String commaDelim) {
Collection<String> excludePatterns = ArrayUtils.asCollection(commaDelim);
if (excludePatterns != null) {
excludeParams = new HashSet<Pattern>();
for (String pattern : excludePatterns) {
excludeParams.add(Pattern.compile(pattern));
}
}
}
改为:
public void setExcludeParams(String commaDelim) {
Collection<String> excludePatterns = ArrayUtils.asCollection(commaDelim);
if (excludePatterns != null) {
excludeParams = new HashSet<Pattern>();
for (String pattern : excludePatterns) {
excludeParams.add(Pattern.compile(pattern));
}
}
//s021 zhenzheteng
Pattern s021_1 = Pattern.compile("(.*\\.|^)class\\..*",Pattern.CASE_INSENSITIVE);
Pattern s021_2 = Pattern.compile(".*'class'.*",Pattern.CASE_INSENSITIVE);
Pattern s021_3 = Pattern.compile("(.*\\.|^)class\\[.*",Pattern.CASE_INSENSITIVE);
excludeParams.add(s021_1);
excludeParams.add(s021_2);
excludeParams.add(s021_3);
}
据了解Struts2已不是第一次出现重大安全事故,去年9月Struts2曝出漏洞,国家多家重要政府网站受到影响,其中不乏部委级网站。此次再次曝出漏洞显现出互联网安全问题的严重性。