博客

Spring库的新漏洞:如何知道你是否有风险以及如何应对

Charlie Eriksen
发布日期:2022年04月01日

最近,Java社区中最受欢迎的库之一Spring库披露了2个与远程代码执行(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托管的应用程序成功,但这并不排除该威胁在未来对这些框架成功的可能性。 

Spring公司发布了关于该漏洞的官方声明,根据目前对该漏洞的理解,需要满足以下条件才会有漏洞。

  • JDK 9或更高版本
  • Apache Tomcat作为Servlet容器
  • 以传统的WAR形式打包(与Spring Boot的可执行jar相比)。
  • spring-webmvc或spring-webflux的依赖性
  • Spring框架的5.3.0至5.3.17、5.2.0至5.2.19版本,以及旧版本

"Spring4Shell "的开发是如何进行的?

该漏洞依赖于在方法签名中使用 "数据绑定"(org.springframework.web.bind.WebDataBinder)的请求,这些请求使用了普通旧Java对象(POJO)。

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

当一个请求被这样的方法处理时,类加载器被用来解决这个类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。当一个新的类被使用时,它找出要加载的.jar文件。 

你可以直接从Spring公司的博文中找到关于这个漏洞的最新和最深入的信息,包括潜在的修复或解决方法。

漏洞2 - Spring Cloud功能(CVE-2022-22963)。

2022年3月27日,Cyber Kendra披露了Spring云功能中的一个0天远程代码执行(RCE)漏洞的细节,该漏洞不存在补丁。该漏洞的ID为CVE-2022-22963。Spring Expression资源访问漏洞。

哪些应用程序有风险?

该漏洞影响了这些条件下的应用。

  • 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请求中,从而执行任意代码。 

用户应该采取什么措施来减少风险?

Spring已经发布了3.1.7和3.2.3版本来解决这个问题,不允许通过HTTP头来设置这个属性,缓解了这个漏洞。升级到这两个版本后,不需要额外的步骤。

有兴趣了解更多关于我们如何帮助开发人员编写更安全的代码?预订一个演示或探索我们在安全代码教练上的免费安全编码指南

资料来源

查看资源
查看资源

最近,Java社区中最受欢迎的库之一Spring库披露了2个与远程代码执行(RCE)有关的漏洞。我们对 "Spring4Shell "和 "Spring Cloud Function "的已知细节进行了分解,以帮助你了解你是否处于风险之中,以及如果你处于风险之中该怎么做。

想了解更多信息?

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

预定一个演示
分享到
作者
Charlie Eriksen
发布日期:2022年04月01日

分享到

最近,Java社区中最受欢迎的库之一Spring库披露了2个与远程代码执行(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托管的应用程序成功,但这并不排除该威胁在未来对这些框架成功的可能性。 

Spring公司发布了关于该漏洞的官方声明,根据目前对该漏洞的理解,需要满足以下条件才会有漏洞。

  • JDK 9或更高版本
  • Apache Tomcat作为Servlet容器
  • 以传统的WAR形式打包(与Spring Boot的可执行jar相比)。
  • spring-webmvc或spring-webflux的依赖性
  • Spring框架的5.3.0至5.3.17、5.2.0至5.2.19版本,以及旧版本

"Spring4Shell "的开发是如何进行的?

该漏洞依赖于在方法签名中使用 "数据绑定"(org.springframework.web.bind.WebDataBinder)的请求,这些请求使用了普通旧Java对象(POJO)。

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

当一个请求被这样的方法处理时,类加载器被用来解决这个类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。当一个新的类被使用时,它找出要加载的.jar文件。 

你可以直接从Spring公司的博文中找到关于这个漏洞的最新和最深入的信息,包括潜在的修复或解决方法。

漏洞2 - Spring Cloud功能(CVE-2022-22963)。

2022年3月27日,Cyber Kendra披露了Spring云功能中的一个0天远程代码执行(RCE)漏洞的细节,该漏洞不存在补丁。该漏洞的ID为CVE-2022-22963。Spring Expression资源访问漏洞。

哪些应用程序有风险?

该漏洞影响了这些条件下的应用。

  • 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请求中,从而执行任意代码。 

用户应该采取什么措施来减少风险?

Spring已经发布了3.1.7和3.2.3版本来解决这个问题,不允许通过HTTP头来设置这个属性,缓解了这个漏洞。升级到这两个版本后,不需要额外的步骤。

有兴趣了解更多关于我们如何帮助开发人员编写更安全的代码?预订一个演示或探索我们在安全代码教练上的免费安全编码指南

资料来源

查看资源
查看资源

请填写下表下载报告

我们希望得到您的许可,向您发送有关我们产品和/或相关安全编码主题的信息。我们将始终以最谨慎的态度对待您的个人资料,绝不会将其出售给其他公司用于营销目的。

提交
要提交表格,请启用 "分析 "cookies。完成后,请随时再次禁用它们。

最近,Java社区中最受欢迎的库之一Spring库披露了2个与远程代码执行(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托管的应用程序成功,但这并不排除该威胁在未来对这些框架成功的可能性。 

Spring公司发布了关于该漏洞的官方声明,根据目前对该漏洞的理解,需要满足以下条件才会有漏洞。

  • JDK 9或更高版本
  • Apache Tomcat作为Servlet容器
  • 以传统的WAR形式打包(与Spring Boot的可执行jar相比)。
  • spring-webmvc或spring-webflux的依赖性
  • Spring框架的5.3.0至5.3.17、5.2.0至5.2.19版本,以及旧版本

"Spring4Shell "的开发是如何进行的?

该漏洞依赖于在方法签名中使用 "数据绑定"(org.springframework.web.bind.WebDataBinder)的请求,这些请求使用了普通旧Java对象(POJO)。

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

当一个请求被这样的方法处理时,类加载器被用来解决这个类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。当一个新的类被使用时,它找出要加载的.jar文件。 

你可以直接从Spring公司的博文中找到关于这个漏洞的最新和最深入的信息,包括潜在的修复或解决方法。

漏洞2 - Spring Cloud功能(CVE-2022-22963)。

2022年3月27日,Cyber Kendra披露了Spring云功能中的一个0天远程代码执行(RCE)漏洞的细节,该漏洞不存在补丁。该漏洞的ID为CVE-2022-22963。Spring Expression资源访问漏洞。

哪些应用程序有风险?

该漏洞影响了这些条件下的应用。

  • 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请求中,从而执行任意代码。 

用户应该采取什么措施来减少风险?

Spring已经发布了3.1.7和3.2.3版本来解决这个问题,不允许通过HTTP头来设置这个属性,缓解了这个漏洞。升级到这两个版本后,不需要额外的步骤。

有兴趣了解更多关于我们如何帮助开发人员编写更安全的代码?预订一个演示或探索我们在安全代码教练上的免费安全编码指南

资料来源

访问资源

点击下面的链接,下载本资料的 PDF 文件。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

查看报告预定一个演示
下载PDF
查看资源
分享到
想了解更多信息?

分享到
作者
Charlie Eriksen
发布日期:2022年04月01日

分享到

最近,Java社区中最受欢迎的库之一Spring库披露了2个与远程代码执行(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托管的应用程序成功,但这并不排除该威胁在未来对这些框架成功的可能性。 

Spring公司发布了关于该漏洞的官方声明,根据目前对该漏洞的理解,需要满足以下条件才会有漏洞。

  • JDK 9或更高版本
  • Apache Tomcat作为Servlet容器
  • 以传统的WAR形式打包(与Spring Boot的可执行jar相比)。
  • spring-webmvc或spring-webflux的依赖性
  • Spring框架的5.3.0至5.3.17、5.2.0至5.2.19版本,以及旧版本

"Spring4Shell "的开发是如何进行的?

该漏洞依赖于在方法签名中使用 "数据绑定"(org.springframework.web.bind.WebDataBinder)的请求,这些请求使用了普通旧Java对象(POJO)。

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

当一个请求被这样的方法处理时,类加载器被用来解决这个类。类加载器负责在运行时加载类,而不必先将所有可能的类型预加载到内存中。当一个新的类被使用时,它找出要加载的.jar文件。 

你可以直接从Spring公司的博文中找到关于这个漏洞的最新和最深入的信息,包括潜在的修复或解决方法。

漏洞2 - Spring Cloud功能(CVE-2022-22963)。

2022年3月27日,Cyber Kendra披露了Spring云功能中的一个0天远程代码执行(RCE)漏洞的细节,该漏洞不存在补丁。该漏洞的ID为CVE-2022-22963。Spring Expression资源访问漏洞。

哪些应用程序有风险?

该漏洞影响了这些条件下的应用。

  • 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请求中,从而执行任意代码。 

用户应该采取什么措施来减少风险?

Spring已经发布了3.1.7和3.2.3版本来解决这个问题,不允许通过HTTP头来设置这个属性,缓解了这个漏洞。升级到这两个版本后,不需要额外的步骤。

有兴趣了解更多关于我们如何帮助开发人员编写更安全的代码?预订一个演示或探索我们在安全代码教练上的免费安全编码指南

资料来源

目录

下载PDF
查看资源
想了解更多信息?

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。

预定一个演示下载
分享到
资源中心
资源中心