他们在 Spring Framework 中发现了一个漏洞

最近有消息说 检测到零日类型的严重漏洞 在模块中 Spring Core 作为 Spring Framework 的一部分提供,它允许远程、未经身份验证的攻击者在服务器上执行他们的代码。

据估计,Spring Core 模块 用于 74% 的 Java 应用程序. 漏洞的危险被降低了,因为只有应用程序 使用“@RequestMapping”注释通过连接请求处理程序并使用“name=value”(POJO,Plain Old Java Object)格式而不是 JSON/XML 格式的 Web 表单参数绑定,它们很容易受到攻击。 目前尚不清楚哪些 Java 应用程序和框架会受到该问题的影响。

这个名为“Spring4Shell”的漏洞利用类注入导致完整的RCE,非常严重。 之所以选择“Spring4Shell”这个名称,是因为 Spring Core 是一个无处不在的库,类似于引发臭名昭著的 Log4Shell 漏洞的 log4j。

我们认为运行 JDK 9 及更高版本的用户容易受到 RCE 攻击。 所有版本的 Spring Core 都会受到影响。

有一些策略可以减轻攻击,我们认为并非所有 Spring 服务器都必然易受攻击,这取决于下面讨论的其他因素。 也就是说,我们目前建议所有使用 Spring Core 的用户应用缓解或升级。

只有在使用 Java/JDK 9 时才能利用该漏洞 或更新的版本。 该漏洞阻止将“class”、“module”和“classLoader”字段列入黑名单或使用允许字段的显式白名单。

问题 是由于能够绕过针对 CVE-2010-1622 漏洞的保护, 在 2010 年的 Spring Framework 中修复,并在解析请求参数时与 classLoader 处理程序的执行相关联。

漏洞利用的操作简化为发送请求 c使用参数“class.module.classLoader.resources.context.parent.pipeline.first.*”,其处理在使用“WebappClassLoaderBase”时会导致调用 AccessLogValve 类。

指定类允许你配置logger在Apache Tomcat的根环境下创建任意jsp文件,并将攻击者指定的代码写入该文件。 创建的文件可用于直接请求,并可用作 Web shell。 要在 Apache Tomcat 环境中攻击易受攻击的应用程序,使用 curl 实用程序发送带有某些参数的请求就足够了。

Spring Core 中考虑的问题 不要与新发现的漏洞混淆 CVE-2022-22963 和 CVE-2022-22950。 第一个问题影响 Spring Cloud 包,还允许实现远程代码执行(利用)。 CVE-2022-22963 在 Spring Cloud 3.1.7 和 3.2.3 版本中得到修复。

第二个问题 CVE-2022-22950 存在于 Spring Expression 中,可用于发起 DoS 攻击,并已在 Spring Framework 5.3.17 中修复。 这些是根本不同的漏洞。 Spring Framework 开发人员尚未就新漏洞发表任何声明,也未发布修复程序。

作为临时保护措施,建议您在代码中使用无效查询参数黑名单。

依旧 目前尚不清楚后果可能是多么灾难性 已确定的问题以及攻击是否会像 Log4j 2 中的漏洞一样大规模。该漏洞的代号为 Spring4Shell,CVE-2022-22965,并已发布更新 Spring Framework 5.3.18 和 5.2.20以解决漏洞。

自 31 年 2022 月 5.3.18 日起,最新发布的 Spring 版本 5.2.20 和 XNUMX 中的补丁现在可用。 我们建议所有用户升级。 对于无法升级的用户,可以采取以下缓解措施:

根据 Praetorian 确认 Spring Core 中存在 RCE 的帖子,目前推荐的方法是通过添加漏洞利用所需的易受攻击字段模式的黑名单来修补 DataBinder。

最后是 您有兴趣了解更多信息 关于笔记,您可以查看详细信息 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。