Spring Java框架0 day远程代码执行漏洞PoC公布。

Spring框架是一个开源的J2EE应用程序框架,Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring框架可以帮助软件开发人员快速开发具备企业级特征的Java 应用。之后,这些应用可以独立部署于服务器上,比如Apache Tomcat。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。

Spring4Shell漏洞概述

3月29日,有研究人员公开了Spring Core Java框架中的一个0 day安全漏洞——Spring4Shell,漏洞CVE编号为CVE-2022-22963。该漏洞是由于传递的参数的不安全反序列化引发的,攻击者利用该漏洞可以在应用中实现远程代码执行。

该漏洞影响所有运行在Java 9及以上版本的Spring 应用,但漏洞利用需要满足特定的条件,CERT/CC漏洞分析研究人员称受影响的应用必须使用Spring Beans,且Spring参数绑定必须裴志伟使用非基本的参数类型,如POJOs。网络安全公司Praetorian也确认该漏洞的利用需要依赖特定配置,如终端必须启用DataBinder,且依赖servlet 容器。比如Spring部署在Apache Tomcat上,并且可以访问WebAppClassLoader,那么攻击者就可以调用setters and getters来写入恶意JSP文件到硬盘中。但如果使用Embedded Tomcat Servlet Container部署Spring,那么classloder就是LaunchedURLClassLoader,只有有限的访问权限。

随后,有研究人员公开了该漏洞的PoC利用代码,参见 https://archive.ph/DIbrv 。大量安全研究人员和安全公司都确认了该漏洞以及该漏洞的在野利用。

截止目前,该漏洞尚未发布补丁,因此建议使用Spring应用的管理员尽快采取适当的修复措施,比如禁止将特定的pattern传递给Spring Core DataBinder功能。具体修复方法参见: Spring Core on JDK9+ is vulnerable to remote code execution - Praetorian

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐