
Spring 库中的新漏洞:如何知道自己是否处于危险之中以及该怎么做
最近,作为 Java 社区中最受欢迎的库之一 Spring 库披露了两个与远程代码执行 (RCE) 相关的漏洞。为了帮助您更轻松地了解自己是否面临漏洞风险以及应采取哪些措施,我们对 “Spring4Shell” 和 “Spring Cloud Function” 的已知详细信息进行了细分。
漏洞 1-“Spring4Shell” (CVE-2022-22965)
2022年3月29日,该社区发现了一系列推文,其中包含针对Spring Core(SC)的漏洞概念验证的屏幕截图,该漏洞允许远程执行所有版本的Spring Core代码,包括最近发布的版本5.3.17。
哪些应用程序面临风险?
目前,只有托管在Tomcat上的应用程序才被证实存在这种新漏洞的风险。尽管针对嵌入式 Tomcat Servlet 容器或任何其他非 Tomcat 托管应用程序的攻击尚未被证明是成功的,但这并不排除将来这些框架成功使用威胁的可能性。
春季发布了官方 声明 关于该漏洞,根据目前对该漏洞的理解,该漏洞阐明了需要满足以下条件才能受到攻击:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包成传统 WAR(与 Spring Boot 可执行文件 jar 相反)
- Spring-webmvc 或 spring-webflux 依赖关系
- Spring Framework 版本 5.3.0 到 5.3.17、5.2.0 到 5.2.19 以及更早的版本
“Spring4Shell” 漏洞是如何运作的?
该漏洞依赖于在方法签名中使用普通旧 Java 对象 (POJO) 的请求中使用 “数据绑定”(org.springframework.web.bind.Web.bind.WebDataBinder):

其中 Foo 类是一个 POJO 类,可以定义如下。请注意,实际的类并不重要,只要它由类加载器加载即可。

当请求由这样的方法处理时,类加载器用于解析该类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。它会计算出使用新类时要加载哪个.jar 文件。
您可以直接从Spring上找到有关此漏洞的最新和深入的信息 博客文章,包括潜在的修复或变通方法。
漏洞 2-Spring Cloud 函数 (CVE-2022-22963)
2022年3月27日,Cyber Kendra披露了有关Spring Cloud Functions中一个为期0天的远程代码执行(RCE)漏洞的详细信息,该漏洞尚无补丁。漏洞被分配了 ID CVE-2022-22963:Spring 表达式资源访问漏洞。
哪些应用程序面临风险?
该漏洞影响了以下条件下的应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 版本 3.1.6(或更低版本)、3.2.2(或更低版本)或任何不支持的版本
剥削是如何运作的?
Spring Cloud Function 使开发人员能够通过属性 spring.cloud.function.routing-expression 配置如何处理路由,通常通过配置或代码来完成。这是一种接受 “Spring 表达语言” (SpEL) 的强大功能。通过这个为期 0 天的漏洞,我们了解到该属性可以通过请求的 HTTP 标头进行设置,这意味着攻击者可以将 SpEL 代码直接嵌入到其 RoutingFunction 端点的 HTTP 请求中,从而执行任意代码。
用户应采取哪些措施来降低风险?
春天有 已发布 版本 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-2022-22965)
2022年3月29日,该社区发现了一系列推文,其中包含针对Spring Core(SC)的漏洞概念验证的屏幕截图,该漏洞允许远程执行所有版本的Spring Core代码,包括最近发布的版本5.3.17。
哪些应用程序面临风险?
目前,只有托管在Tomcat上的应用程序才被证实存在这种新漏洞的风险。尽管针对嵌入式 Tomcat Servlet 容器或任何其他非 Tomcat 托管应用程序的攻击尚未被证明是成功的,但这并不排除将来这些框架成功使用威胁的可能性。
春季发布了官方 声明 关于该漏洞,根据目前对该漏洞的理解,该漏洞阐明了需要满足以下条件才能受到攻击:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包成传统 WAR(与 Spring Boot 可执行文件 jar 相反)
- Spring-webmvc 或 spring-webflux 依赖关系
- Spring Framework 版本 5.3.0 到 5.3.17、5.2.0 到 5.2.19 以及更早的版本
“Spring4Shell” 漏洞是如何运作的?
该漏洞依赖于在方法签名中使用普通旧 Java 对象 (POJO) 的请求中使用 “数据绑定”(org.springframework.web.bind.Web.bind.WebDataBinder):

其中 Foo 类是一个 POJO 类,可以定义如下。请注意,实际的类并不重要,只要它由类加载器加载即可。

当请求由这样的方法处理时,类加载器用于解析该类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。它会计算出使用新类时要加载哪个.jar 文件。
您可以直接从Spring上找到有关此漏洞的最新和深入的信息 博客文章,包括潜在的修复或变通方法。
漏洞 2-Spring Cloud 函数 (CVE-2022-22963)
2022年3月27日,Cyber Kendra披露了有关Spring Cloud Functions中一个为期0天的远程代码执行(RCE)漏洞的详细信息,该漏洞尚无补丁。漏洞被分配了 ID CVE-2022-22963:Spring 表达式资源访问漏洞。
哪些应用程序面临风险?
该漏洞影响了以下条件下的应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 版本 3.1.6(或更低版本)、3.2.2(或更低版本)或任何不支持的版本
剥削是如何运作的?
Spring Cloud Function 使开发人员能够通过属性 spring.cloud.function.routing-expression 配置如何处理路由,通常通过配置或代码来完成。这是一种接受 “Spring 表达语言” (SpEL) 的强大功能。通过这个为期 0 天的漏洞,我们了解到该属性可以通过请求的 HTTP 标头进行设置,这意味着攻击者可以将 SpEL 代码直接嵌入到其 RoutingFunction 端点的 HTTP 请求中,从而执行任意代码。
用户应采取哪些措施来降低风险?
春天有 已发布 版本 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-2022-22965)
2022年3月29日,该社区发现了一系列推文,其中包含针对Spring Core(SC)的漏洞概念验证的屏幕截图,该漏洞允许远程执行所有版本的Spring Core代码,包括最近发布的版本5.3.17。
哪些应用程序面临风险?
目前,只有托管在Tomcat上的应用程序才被证实存在这种新漏洞的风险。尽管针对嵌入式 Tomcat Servlet 容器或任何其他非 Tomcat 托管应用程序的攻击尚未被证明是成功的,但这并不排除将来这些框架成功使用威胁的可能性。
春季发布了官方 声明 关于该漏洞,根据目前对该漏洞的理解,该漏洞阐明了需要满足以下条件才能受到攻击:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包成传统 WAR(与 Spring Boot 可执行文件 jar 相反)
- Spring-webmvc 或 spring-webflux 依赖关系
- Spring Framework 版本 5.3.0 到 5.3.17、5.2.0 到 5.2.19 以及更早的版本
“Spring4Shell” 漏洞是如何运作的?
该漏洞依赖于在方法签名中使用普通旧 Java 对象 (POJO) 的请求中使用 “数据绑定”(org.springframework.web.bind.Web.bind.WebDataBinder):

其中 Foo 类是一个 POJO 类,可以定义如下。请注意,实际的类并不重要,只要它由类加载器加载即可。

当请求由这样的方法处理时,类加载器用于解析该类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。它会计算出使用新类时要加载哪个.jar 文件。
您可以直接从Spring上找到有关此漏洞的最新和深入的信息 博客文章,包括潜在的修复或变通方法。
漏洞 2-Spring Cloud 函数 (CVE-2022-22963)
2022年3月27日,Cyber Kendra披露了有关Spring Cloud Functions中一个为期0天的远程代码执行(RCE)漏洞的详细信息,该漏洞尚无补丁。漏洞被分配了 ID CVE-2022-22963:Spring 表达式资源访问漏洞。
哪些应用程序面临风险?
该漏洞影响了以下条件下的应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 版本 3.1.6(或更低版本)、3.2.2(或更低版本)或任何不支持的版本
剥削是如何运作的?
Spring Cloud Function 使开发人员能够通过属性 spring.cloud.function.routing-expression 配置如何处理路由,通常通过配置或代码来完成。这是一种接受 “Spring 表达语言” (SpEL) 的强大功能。通过这个为期 0 天的漏洞,我们了解到该属性可以通过请求的 HTTP 标头进行设置,这意味着攻击者可以将 SpEL 代码直接嵌入到其 RoutingFunction 端点的 HTTP 请求中,从而执行任意代码。
用户应采取哪些措施来降低风险?
春天有 已发布 版本 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-2022-22965)
2022年3月29日,该社区发现了一系列推文,其中包含针对Spring Core(SC)的漏洞概念验证的屏幕截图,该漏洞允许远程执行所有版本的Spring Core代码,包括最近发布的版本5.3.17。
哪些应用程序面临风险?
目前,只有托管在Tomcat上的应用程序才被证实存在这种新漏洞的风险。尽管针对嵌入式 Tomcat Servlet 容器或任何其他非 Tomcat 托管应用程序的攻击尚未被证明是成功的,但这并不排除将来这些框架成功使用威胁的可能性。
春季发布了官方 声明 关于该漏洞,根据目前对该漏洞的理解,该漏洞阐明了需要满足以下条件才能受到攻击:
- JDK 9 或更高版本
- Apache Tomcat 作为 Servlet 容器
- 打包成传统 WAR(与 Spring Boot 可执行文件 jar 相反)
- Spring-webmvc 或 spring-webflux 依赖关系
- Spring Framework 版本 5.3.0 到 5.3.17、5.2.0 到 5.2.19 以及更早的版本
“Spring4Shell” 漏洞是如何运作的?
该漏洞依赖于在方法签名中使用普通旧 Java 对象 (POJO) 的请求中使用 “数据绑定”(org.springframework.web.bind.Web.bind.WebDataBinder):

其中 Foo 类是一个 POJO 类,可以定义如下。请注意,实际的类并不重要,只要它由类加载器加载即可。

当请求由这样的方法处理时,类加载器用于解析该类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。它会计算出使用新类时要加载哪个.jar 文件。
您可以直接从Spring上找到有关此漏洞的最新和深入的信息 博客文章,包括潜在的修复或变通方法。
漏洞 2-Spring Cloud 函数 (CVE-2022-22963)
2022年3月27日,Cyber Kendra披露了有关Spring Cloud Functions中一个为期0天的远程代码执行(RCE)漏洞的详细信息,该漏洞尚无补丁。漏洞被分配了 ID CVE-2022-22963:Spring 表达式资源访问漏洞。
哪些应用程序面临风险?
该漏洞影响了以下条件下的应用程序:
- JDK 9 或更高版本
- Spring Cloud Functions 版本 3.1.6(或更低版本)、3.2.2(或更低版本)或任何不支持的版本
剥削是如何运作的?
Spring Cloud Function 使开发人员能够通过属性 spring.cloud.function.routing-expression 配置如何处理路由,通常通过配置或代码来完成。这是一种接受 “Spring 表达语言” (SpEL) 的强大功能。通过这个为期 0 天的漏洞,我们了解到该属性可以通过请求的 HTTP 标头进行设置,这意味着攻击者可以将 SpEL 代码直接嵌入到其 RoutingFunction 端点的 HTTP 请求中,从而执行任意代码。
用户应采取哪些措施来降低风险?
春天有 已发布 版本 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)
