近日,国家信息安全漏洞共享平台(CNVD)收录了Spring Boot框架存在的SPEL表达式注入漏洞(CNVD-2016-04742)。远程攻击者利用漏洞可在服务器端执行相关指令或代码,有可能远程渗透控制网站服务器。由于该应用框架使用范围广泛,构成较高的安全威胁。
一、漏洞情况分析
Spring是一款轻量级Java开发框架。Spring Boot是Spring 的一个核心子项目,其设计目的是用于简化新Spring应用的初始搭建以及开发过程。
由于SpelView类中的exactMatch参数未严格过滤,Spring Boot framework 对异常处理不当在同时开启whitelabel page,会造成异常请求中注入SPEL执行。当用户采用Spring Boot启动Spring MVC项目后,Spring Boot默认异常模板在处理异常信息时,会递归解析SPEL表达式,可导致SPEL表达式注入并执行。攻击者利用此漏洞,通过SPEL即可在服务器端实现指令注入(执行代码)。
CNVD对该漏洞的综合评级为“高危”。
二、漏洞影响范围
漏洞影响Spring Boot 1.1-1.3.0的版本,使用上述版本框架构建的网站可能受漏洞影响。
三、漏洞修复建议
目前,互联网上已披露了该漏洞的利用代码。近期,WOOYUN网站提交者唐朝实验室也提交了对于漏洞的详细说明,并将于约90天后公开。厂商已发布了升级程序修复该漏洞,CNVD建议用户将程序升级至Spring Boot 1.3.1及以上版本。更新地址:
https://github.com/spring-projects/spring-boot/commit/edb16a13ee33e62b046730a47843cb5dc92054e6
附:参考链接:
https://github.com/spring-projects/spring-boot/issues/4763
http://www.cnvd.org.cn/flaw/show/CNVD-2016-04742
http://www.wooyun.org/bugs/wooyun-2016-0226888 (WOOYUN网站报告)
http://blog.nsfocus.net/spel-vulnerability-technical-analysis-and-protection-scheme/
(注:本公告重点参考了CNVD技术组成员单位——绿盟科技公司提供的相关分析结果)