Pie*_*rey 27
Aspect Security的发现于2013年1月发现,但SpringSource发布的修复程序在2011年首次发现时提供.Aspect Security的Dan Amodio向SpringSource通报了远程代码执行的可能性.
SpringSource使用Aspect Security的发现更新了我们的安全报告12-06-2012 - 但原始建议中列出的修复/缓解仍然适用:http://support.springsource.com/security/cve-2011-2730
此漏洞仅影响Spring Framework版本:
•3.0.0到3.0.5 - 升级到3.0.6可以解决问题.•2.5.0到2.5.6.SEC02(社区版本) - 升级到2.5.6.SEC03就可以解决这个问题.•2.5.0至2.5.7.SR01(订阅客户) - 升级到2.5.7.SR02可解决此问题.
这已在所有版本中得到修复 - 当前版本的SpringFramework是3.2,于2012年12月发布.
谢谢,
-Pieter(SpringSource)
查看SpEL 的Aspect Security/Minded Security评估(google 文档链接),您链接到的文章可能指的是该文章(针对 SpEL 的具体情况)。
它们描述了某些 Spring JSP 标签如何双重计算 EL 表达式。在这些情况下,用户可以以 SpEL 的形式向服务器提交数据,例如作为带有值的请求参数${bean.val}(URL 编码)
http://...?exp=$%7Bbean.val%7D
Run Code Online (Sandbox Code Playgroud)
在 JSP 页面内,表达式将被解析为本身安全的${param.exp}文本。${bean.val}然而,如果该表达式驻留在 spring JSTL 标签的属性内,则可以再次评估该解析值,例如在标签中spring:message:
<spring:message message="${param.exp}" />
Run Code Online (Sandbox Code Playgroud)
将导致值${bean.val}传递到spring:message将评估该bean.getVal()方法的标记。因此,我们现在有了客户端提交的代码并在服务器上运行。