Struts2漏洞补丁陷乌龙 加速乐提供独家防御方案

2014年04月23日

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曝出漏洞,国家多家重要政府网站受到影响,其中不乏部委级网站。此次再次曝出漏洞显现出互联网安全问题的严重性。

 

×