打开微信“扫一扫”,开启安(ān)全数字世界之旅
截图或長(cháng)按保存至相册,使用(yòng)微信扫一扫

新(xīn)闻与活动

亚信安(ān)全最新(xīn)资讯与活动。

警惕!Spring Data MongoDB SpEL表达式注入漏洞风险通告
发布时间 :2022年06月22日
类型 :勒索软件
分(fēn)享:

漏洞描述

近日,亚信安(ān)全CERT监控到Spring Data MongoDB存在表达式注入漏洞(CVE-2022-22980),该漏洞源于Spring Data MongoDB应用(yòng)程序在使用(yòng)带有(yǒu)SpEL表达式的@Query或@Aggregation-annotated查询方法时容易受到SpEL注入的影响,如果输入未过滤,则该表达式包含用(yòng)于值绑定的查询参数占位符。攻击者利用(yòng)该漏洞可(kě)在目标服務(wù)器上执行代码。


Spring Data MongoDB是Spring Source的一个子项目,旨在為(wèi)关系型数据库、非关系型数据、Map-Reduce框架、云数据服務(wù)等等提供统一的数据访问API。Spring Data MongoDB是Spring框架访问MongoDB的组件,使用(yòng)它可(kě)以非常方便的操作(zuò)MongoDB数据库。


目前厂商(shāng)已发布安(ān)全版本,鉴于该漏洞受影响面广大,亚信安(ān)全CERT建议使用(yòng)Spring Data MongoDB的用(yòng)户尽快采取相关措施。


漏洞编号

CVE-2022-22980


漏洞等级

高危


漏洞状态

漏洞细节

漏洞PoC

漏洞EXP

在野利用(yòng)

未发现

未发现

未发现

未发现




受影响的版本

  • @Query使用(yòng) SpEL(Spring表达式语言)注释或@Aggregation使用(yòng) SpEL(Spring表达式语言)并在SpEL表达式中(zhōng)使用(yòng)输入参数引用(yòng)(?0、?1...)的存储库查询方法的声明

  • spring-data-mongodb依赖

  • Spring Data MongoDB 3.4.0、3.3.0到3.3.4及更早版本


修复建议

※更新(xīn)至安(ān)全版本:

  • Spring Data MongoDB 3.4.1版本:https://github.com/spring-projects/spring-data-mongodb/releases/tag/3.4.1

  • Spring Data MongoDB 3.3.5版本:Release 3.3.5 · spring-projects/spring-data-mongodb


※缓解措施:

  • 用(yòng)数组语法:如果您的应用(yòng)程序需要由用(yòng)户输入控制的动态SpEL表达式,则使用(yòng)数组语法引用(yòng)SpEL参数[0]是访问SpEL参数的安(ān)全方法。

  • 实现自定义存储库方法:用(yòng)自定义存储库方法实现替换SpEL表达式是在应用(yòng)程序代码中(zhōng)组装(zhuāng)动态查询的可(kě)行解决方法。有(yǒu)关更多(duō)详细信息,请参阅有(yǒu)关存储库自定义的参考文(wén)档。

  • 在调用(yòng)查询方法之前清理(lǐ)参数。

  • 通过具(jù)有(yǒu)受限QueryMethodEvaluationContextProvider和BeanPostProcessor重新(xīn)配置存储库工(gōng)厂bean。


参考链接

  • https://spring.io/blog/2022/06/20/spring-data-mongodb-spel-expression-injection-vulnerability-cve-2022-22980

  • https://github.com/spring-projects/spring-data-mongodb/releases/tag/3.4.1

  • Release 3.3.5 · spring-projects/spring-data-mongodb

  • https://tanzu.vmware.com/security/cve-2022-22980

分(fēn)享到微信
X