博客

Spring 库中的新漏洞:如何判断您是否面临风险以及该采取什么措施

April 1, 2022
查理·埃里克森
一位留着长发的女性面部,在深色背景下,被五彩斑斓的计算机代码和数据投影照亮。

近期,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 Framework 版本 5.3.0 至 5.3.17、5.2.0 至 5.2.19 及更早版本

“Spring4Shell”漏洞是如何利用的?

该漏洞利用依赖于在方法签名中使用普通 Java 对象 (POJO) 的请求中调用“数据绑定”(org.springframework.web.bind.WebDataBinder):

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

Java code defining class Foo in package spring4shell.model with private String variable Bar.

当请求由类似这样的方法处理时,会使用类加载器来解析该类。类加载器负责在运行时加载类,而无需先将所有可能的类型预加载到内存中。它会在使用新类时确定要加载哪个 .jar 文件。

您可以直接从 Spring 的博客文章中获取有关此漏洞的最新且深入的信息,包括潜在的修复方案或变通方法。

漏洞 2 - Spring Cloud Function (CVE-2022-22963)

2022 年 3 月 27 日,Cyber Kendra 披露了 Spring Cloud Functions 中一个 0-day 远程代码执行 (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)。通过此次零日漏洞,我们发现该属性可以通过 HTTP 请求头进行设置,这意味着攻击者可以将 SpEL 代码直接嵌入到发送至 RoutingFunction 端点的 HTTP 请求中,从而执行任意代码。

用户应采取哪些措施来降低风险?

Spring 已 发布 3.1.7 和 3.2.3 版本以解决此问题,通过禁止通过 HTTP 请求头设置该属性来修复漏洞。升级到上述任一版本后,无需进行其他操作。

想了解我们如何帮助开发者编写更安全的代码吗?预约演示 或在 上探索我们的免费安全编码指南。

‍

参考来源

‍

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。