漏洞描述
Apache Struts是一款建立Java web应用程序的开放源代码架构。漏洞允许恶意用户绕过内置在ParametersInterceptor中的所有保护(正则表达式模式,拒绝方法调用),可在任何输出字符串注入恶意表达式作进一步求值。ParametersInterceptor中正则表达式把top['foo'](0)作为合法表达式,而OGNL作为(top['foo'])(0)处理,把'foo' action参数值作为OGNL表达式求值。这可导致恶意用户把任意OGNL语句设置在action输出的任意字符串变量中,并以OGNL表示求值,由于OGNL语句在HTTP参数值中,攻击者可以使用黑名单字符如#禁用方法的执行并执行任意方法,绕过ParametersInterceptor和OGNL库保护。
影响产品
修复建议
建议关注厂商安全公告,及时升级至已修复版本,并结合实际资产暴露情况采取缓解措施。
参考链接
seclists.orghttp://seclists.org/fulldisclosure/2014/Jul/38↗www.securityfocus.comhttp://www.securityfocus.com/bid/51628↗www.securitytracker.comhttp://www.securitytracker.com/id?1026575↗bugzilla.redhat.comhttps://bugzilla.redhat.com/show_bug.cgi?id=CVE-2011-3923↗exchange.xforce.ibmcloud.comhttps://exchange.xforce.ibmcloud.com/vulnerabilities/72585↗security-tracker.debian.orghttps://security-tracker.debian.org/tracker/CVE-2011-3923↗