
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/
入门资源
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
OpenText 应用程序安全性的强大功能 + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.





