领先一步
VMware 提供培训和认证,助您加速前进。
了解更多更新
我们很高兴宣布发布 Spring Data MongoDB 3.4.1 和 3.3.5,以解决以下 CVE 报告
此漏洞由绿盟科技天机实验室的 Zewei Zhang 于 2022 年 6 月 13 日(星期一)负责任地报告。完整报告将在未来几天发布到 MITRE 并作为安全公告发布在 tanzu.vmware.com/security 下。
该漏洞影响使用带有 @Query
或 @Aggregation
注解并使用参数化 SpEL 语句的 Repository 查询方法的 Spring Data MongoDB 应用程序。特定的利用需要向 Repository 查询方法使用未经净化的输入。
以下是此特定漏洞的必要条件
@Query
或 @Aggregation
注解的 Repository 查询方法,这些方法使用 SpEL (Spring Expression Language) 并在 SpEL 表达式中使用输入参数引用 (?0
, ?1
, …)spring-data-mongodb
依赖附加说明
[0]
, [1]
, […]
) 引用 SpEL 参数不会产生漏洞,如果您无法升级到包含修复的版本,这是一种推荐的权宜之计。首选的应对措施是更新到 Spring Data MongoDB 3.4.1 和 3.3.5 或更高版本。如果您已经完成此操作,则无需任何权宜之计。然而,有些人可能无法快速升级。出于这个原因,我们在下面提供了一些权宜之计。
请注意,权宜之计不一定是相互排斥的,因为安全最好采取“深度防御”。
如果您的应用程序需要受用户输入控制的动态 SpEL 表达式,那么使用数组语法 [0]
引用 SpEL 参数是一种安全的访问 SpEL 参数的方式。
将 SpEL 表达式替换为自定义 Repository 方法实现是一种可行的权宜之计,可以在应用程序代码中组装动态查询。有关更多详细信息,请参阅Repository 自定义参考文档。