SCW图标
英雄背景无分隔线
博客

Spring库中发现新漏洞:如何判断自身风险及应对措施

Charlie Eriksen
发布于 2022 年 4 月 1 日
最后更新于 2026年3月6日

近期,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头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。

您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南

富恩特斯

查看资源
查看资源

近日,Java社区最受欢迎的Spring库曝出两处与远程代码执行(RCE)相关的漏洞。我们详细解析了"Spring4Shell"和"Spring Cloud Function"漏洞的已知细节,助您判断自身是否面临风险,并提供应对措施。

感兴趣了解更多吗?

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Charlie Eriksen
发布日期:2022年04月01日

分享到:
领英品牌社交x 标志

近期,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头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。

您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南

富恩特斯

查看资源
查看资源

请填写以下表格以下载报告

我们希望获得您的许可,以便向您发送有关我们产品或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会出于营销目的将其出售给其他公司。

发送
scw 成功图标
SCW 错误图标
要提交表单,请启用「分析」cookie。完成后请随时将其重新禁用。

近期,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头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。

您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南

富恩特斯

观看网络研讨会
开始
了解更多

点击下方链接,下载此资源的PDF文件。

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
感兴趣了解更多吗?

分享到:
领英品牌社交x 标志
作者
Charlie Eriksen
发布日期:2022年04月01日

分享到:
领英品牌社交x 标志

近期,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头设置该属性来解决此问题,从而缓解了该漏洞。升级至任一版本后无需执行额外操作。

您是否想了解更多关于我们如何帮助开发者编写更安全代码的信息?立即预约演示,或访问安全代码训练师获取免费的编码安全指南

富恩特斯

目录

下载PDF
查看资源
感兴趣了解更多吗?

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

入门资源

更多出版物
资源中心

入门资源

更多出版物