Spring 框架RCE 安全漏洞及解决方式

继2021年底由阿里发现的Log4j的严重漏洞之后, Spring框架也被发现了一个重大的安全漏洞。目前这个漏洞的名称被称为“SpringShell: Spring Core RCE 0-day Vulnerability”。
这个漏洞是一个RCE的漏洞,RCE (remote command/code execute),远端命令执行, 也就是可以在远端控制服务器,相当于一个命令窗口,类似于linux 的Shell , 所以被称为 SpringShell。 发生在去年的Log4j 的漏洞也有类似的状况,所以也被戏称为Log4Shell。
0-day漏洞,又称“零日漏洞”(zero-day),是已经被发现(有可能未被公开),而官方还没有相关补丁的漏洞。 但是随后,Spring官方对这个问题进行了紧急修复, 所以也就不是零日漏洞了。但是这个漏洞目前还没有产生 CVE的漏洞统一编码。

什么情况存在漏洞风险?

满足以下两个条件,则存在风险:

  1. JDK9版本之上
  2. 使用了Spring MVC框架

另外,这个漏洞发生在打包成war打包档部署到Tomcat运行的状况, 对于开发时使用内嵌的Tomcat不受影响。其他Servlet容器也不影响。

什么样的风险?

上面说到攻击的类型时RCE,远程攻击者可以在满足一定条件的基础上,通过框架的参数绑定功能获取AccessLogValve对象和恶意字段值,从而触发管道机制 并写入任意字段。

如何确认是否存在风险

  1. 检查服务器的Java版本
    在命令行输入

猜你喜欢

转载自blog.csdn.net/oscar999/article/details/123884574