
Spring库中发现新漏洞:如何判断自身风险及应对措施
近期,Java社区最受欢迎的Spring库曝出两处与远程代码执行(RCE)相关的漏洞。为帮助您更好地了解自身是否面临风险及应采取的防护措施,我们详细解析了"Spring4Shell"和"Spring Cloud Function"漏洞的已知细节。
漏洞1:Spring4Shell(CVE-22965)
2022年3月29日,安全社区发现一系列推文,其中包含针对Spring Core(SC)漏洞的概念验证截图。该漏洞允许在所有版本的Spring Core中执行远程代码,包括最新发布的5.3.17版本。
哪些应用程序存在风险?
目前仅确认部署在Tomcat上的应用程序存在遭受此新型漏洞攻击的风险。尽管尚未证实该漏洞可成功攻击Tomcat内置的Servlet容器或其他非Tomcat托管的应用程序,但这并不排除该威胁未来可能对这些框架产生影响的可能性。
Spring发布了一份关于该漏洞的官方声明,澄清根据当前对漏洞的理解,满足以下条件才构成漏洞:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包为传统的WAR文件(不同于Spring Boot的可执行文件)
- spring-webmvc 或 spring-webflux 的依赖性
- Spring Framework 版本 5.3.0 至 5.3.17、5.2.0 至 5.2.19 及更早版本
「Spring4Shell」漏洞如何被利用?
该漏洞利用基于在请求中使用Java原生对象(POJO)时,方法签名中存在的"数据绑定"(org.springFramework.webbind.WebDataBinder)机制:

Foo类是一个POJO类,其定义如下所示。请注意,实际类本身并不重要,只要能被类加载器加载即可。

当请求通过此类方法处理时,类加载器将用于解析该类。类加载器负责在运行时加载类,而无需预先将所有可能的类型加载到内存中。它在使用新类时确定应加载哪个.jar文件。
有关此漏洞的最新详细信息,可直接通过Spring的博客文章获取,其中包含可能的修复方案或替代解决方案。
漏洞2:Spring Cloud功能(CVE-333322963)
2022年3月27日,Cyber Kendra披露了Spring Cloud Functions中一个0天远程代码执行(RCE)漏洞的详细信息,该漏洞当时尚无补丁可修复。该漏洞被分配了CVE编号CVE-333322963:Spring表达式资源访问漏洞。
哪些应用程序存在风险?
该漏洞在以下条件下影响了应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 3.1.6 版(或更早版本)、3.2.2 版(或更早版本)或任何不兼容版本
剥削是如何运作的?
Spring Cloud Function 通过 spring.cloud.function.routing-expression 属性为开发者提供了配置路由处理方式的能力,通常可通过配置或代码实现。该功能支持"Spring表达式语言"(SpEL),具备强大处理能力。 通过此零日漏洞,我们发现该属性可通过请求的HTTP头部进行配置。这意味着攻击者可将SpEL代码直接嵌入发往RoutingFunction端点的HTTP请求中,从而实现任意代码执行。
用户应采取哪些措施来降低风险?
Laprimavera已发布3.1.7和3.2.3版本,通过禁止通过HTTP头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。
您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南。
富恩特斯
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/


近期,Java社区最受欢迎的Spring库曝出两处与远程代码执行(RCE)相关的漏洞。为帮助您更好地了解自身是否面临风险及应采取的防护措施,我们详细解析了"Spring4Shell"和"Spring Cloud Function"漏洞的已知细节。
漏洞1:Spring4Shell(CVE-22965)
2022年3月29日,安全社区发现一系列推文,其中包含针对Spring Core(SC)漏洞的概念验证截图。该漏洞允许在所有版本的Spring Core中执行远程代码,包括最新发布的5.3.17版本。
哪些应用程序存在风险?
目前仅确认部署在Tomcat上的应用程序存在遭受此新型漏洞攻击的风险。尽管尚未证实该漏洞可成功攻击Tomcat内置的Servlet容器或其他非Tomcat托管的应用程序,但这并不排除该威胁未来可能对这些框架产生影响的可能性。
Spring发布了一份关于该漏洞的官方声明,澄清根据当前对漏洞的理解,满足以下条件才构成漏洞:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包为传统的WAR文件(不同于Spring Boot的可执行文件)
- spring-webmvc 或 spring-webflux 的依赖性
- Spring Framework 版本 5.3.0 至 5.3.17、5.2.0 至 5.2.19 及更早版本
「Spring4Shell」漏洞如何被利用?
该漏洞利用基于在请求中使用Java原生对象(POJO)时,方法签名中存在的"数据绑定"(org.springFramework.webbind.WebDataBinder)机制:

Foo类是一个POJO类,其定义如下所示。请注意,实际类本身并不重要,只要能被类加载器加载即可。

当请求通过此类方法处理时,类加载器将用于解析该类。类加载器负责在运行时加载类,而无需预先将所有可能的类型加载到内存中。它在使用新类时确定应加载哪个.jar文件。
有关此漏洞的最新详细信息,可直接通过Spring的博客文章获取,其中包含可能的修复方案或替代解决方案。
漏洞2:Spring Cloud功能(CVE-333322963)
2022年3月27日,Cyber Kendra披露了Spring Cloud Functions中一个0天远程代码执行(RCE)漏洞的详细信息,该漏洞当时尚无补丁可修复。该漏洞被分配了CVE编号CVE-333322963:Spring表达式资源访问漏洞。
哪些应用程序存在风险?
该漏洞在以下条件下影响了应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 3.1.6 版(或更早版本)、3.2.2 版(或更早版本)或任何不兼容版本
剥削是如何运作的?
Spring Cloud Function 通过 spring.cloud.function.routing-expression 属性为开发者提供了配置路由处理方式的能力,通常可通过配置或代码实现。该功能支持"Spring表达式语言"(SpEL),具备强大处理能力。 通过此零日漏洞,我们发现该属性可通过请求的HTTP头部进行配置。这意味着攻击者可将SpEL代码直接嵌入发往RoutingFunction端点的HTTP请求中,从而实现任意代码执行。
用户应采取哪些措施来降低风险?
Laprimavera已发布3.1.7和3.2.3版本,通过禁止通过HTTP头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。
您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南。
富恩特斯
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/

近期,Java社区最受欢迎的Spring库曝出两处与远程代码执行(RCE)相关的漏洞。为帮助您更好地了解自身是否面临风险及应采取的防护措施,我们详细解析了"Spring4Shell"和"Spring Cloud Function"漏洞的已知细节。
漏洞1:Spring4Shell(CVE-22965)
2022年3月29日,安全社区发现一系列推文,其中包含针对Spring Core(SC)漏洞的概念验证截图。该漏洞允许在所有版本的Spring Core中执行远程代码,包括最新发布的5.3.17版本。
哪些应用程序存在风险?
目前仅确认部署在Tomcat上的应用程序存在遭受此新型漏洞攻击的风险。尽管尚未证实该漏洞可成功攻击Tomcat内置的Servlet容器或其他非Tomcat托管的应用程序,但这并不排除该威胁未来可能对这些框架产生影响的可能性。
Spring发布了一份关于该漏洞的官方声明,澄清根据当前对漏洞的理解,满足以下条件才构成漏洞:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包为传统的WAR文件(不同于Spring Boot的可执行文件)
- spring-webmvc 或 spring-webflux 的依赖性
- Spring Framework 版本 5.3.0 至 5.3.17、5.2.0 至 5.2.19 及更早版本
「Spring4Shell」漏洞如何被利用?
该漏洞利用基于在请求中使用Java原生对象(POJO)时,方法签名中存在的"数据绑定"(org.springFramework.webbind.WebDataBinder)机制:

Foo类是一个POJO类,其定义如下所示。请注意,实际类本身并不重要,只要能被类加载器加载即可。

当请求通过此类方法处理时,类加载器将用于解析该类。类加载器负责在运行时加载类,而无需预先将所有可能的类型加载到内存中。它在使用新类时确定应加载哪个.jar文件。
有关此漏洞的最新详细信息,可直接通过Spring的博客文章获取,其中包含可能的修复方案或替代解决方案。
漏洞2:Spring Cloud功能(CVE-333322963)
2022年3月27日,Cyber Kendra披露了Spring Cloud Functions中一个0天远程代码执行(RCE)漏洞的详细信息,该漏洞当时尚无补丁可修复。该漏洞被分配了CVE编号CVE-333322963:Spring表达式资源访问漏洞。
哪些应用程序存在风险?
该漏洞在以下条件下影响了应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 3.1.6 版(或更早版本)、3.2.2 版(或更早版本)或任何不兼容版本
剥削是如何运作的?
Spring Cloud Function 通过 spring.cloud.function.routing-expression 属性为开发者提供了配置路由处理方式的能力,通常可通过配置或代码实现。该功能支持"Spring表达式语言"(SpEL),具备强大处理能力。 通过此零日漏洞,我们发现该属性可通过请求的HTTP头部进行配置。这意味着攻击者可将SpEL代码直接嵌入发往RoutingFunction端点的HTTP请求中,从而实现任意代码执行。
用户应采取哪些措施来降低风险?
Laprimavera已发布3.1.7和3.2.3版本,通过禁止通过HTTP头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。
您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南。
富恩特斯
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/
近期,Java社区最受欢迎的Spring库曝出两处与远程代码执行(RCE)相关的漏洞。为帮助您更好地了解自身是否面临风险及应采取的防护措施,我们详细解析了"Spring4Shell"和"Spring Cloud Function"漏洞的已知细节。
漏洞1:Spring4Shell(CVE-22965)
2022年3月29日,安全社区发现一系列推文,其中包含针对Spring Core(SC)漏洞的概念验证截图。该漏洞允许在所有版本的Spring Core中执行远程代码,包括最新发布的5.3.17版本。
哪些应用程序存在风险?
目前仅确认部署在Tomcat上的应用程序存在遭受此新型漏洞攻击的风险。尽管尚未证实该漏洞可成功攻击Tomcat内置的Servlet容器或其他非Tomcat托管的应用程序,但这并不排除该威胁未来可能对这些框架产生影响的可能性。
Spring发布了一份关于该漏洞的官方声明,澄清根据当前对漏洞的理解,满足以下条件才构成漏洞:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包为传统的WAR文件(不同于Spring Boot的可执行文件)
- spring-webmvc 或 spring-webflux 的依赖性
- Spring Framework 版本 5.3.0 至 5.3.17、5.2.0 至 5.2.19 及更早版本
「Spring4Shell」漏洞如何被利用?
该漏洞利用基于在请求中使用Java原生对象(POJO)时,方法签名中存在的"数据绑定"(org.springFramework.webbind.WebDataBinder)机制:

Foo类是一个POJO类,其定义如下所示。请注意,实际类本身并不重要,只要能被类加载器加载即可。

当请求通过此类方法处理时,类加载器将用于解析该类。类加载器负责在运行时加载类,而无需预先将所有可能的类型加载到内存中。它在使用新类时确定应加载哪个.jar文件。
有关此漏洞的最新详细信息,可直接通过Spring的博客文章获取,其中包含可能的修复方案或替代解决方案。
漏洞2:Spring Cloud功能(CVE-333322963)
2022年3月27日,Cyber Kendra披露了Spring Cloud Functions中一个0天远程代码执行(RCE)漏洞的详细信息,该漏洞当时尚无补丁可修复。该漏洞被分配了CVE编号CVE-333322963:Spring表达式资源访问漏洞。
哪些应用程序存在风险?
该漏洞在以下条件下影响了应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 3.1.6 版(或更早版本)、3.2.2 版(或更早版本)或任何不兼容版本
剥削是如何运作的?
Spring Cloud Function 通过 spring.cloud.function.routing-expression 属性为开发者提供了配置路由处理方式的能力,通常可通过配置或代码实现。该功能支持"Spring表达式语言"(SpEL),具备强大处理能力。 通过此零日漏洞,我们发现该属性可通过请求的HTTP头部进行配置。这意味着攻击者可将SpEL代码直接嵌入发往RoutingFunction端点的HTTP请求中,从而实现任意代码执行。
用户应采取哪些措施来降低风险?
Laprimavera已发布3.1.7和3.2.3版本,通过禁止通过HTTP头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。
您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南。
富恩特斯
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/





%20(1).avif)
.avif)
