Spring Data MongoDB SpEL表达式注入漏洞 (CVE-2022-22980)

admin 2022年6月21日21:29:50评论92 views字数 1159阅读3分51秒阅读模式
Spring Data MongoDB SpEL表达式注入漏洞 (CVE-2022-22980)


0x01 Spring Data MongoDB

Spring Data MongoDB可以提供Java开发人员在使用MongoDB时的效率。它使用了熟悉的Spring概念,例如用于核心API的模块类,轻量级仓库风格的数据访问


Spring Data MongoDB项目提供了与MongoDB文档数据库的集成。Spring Data MongoDB的关键功能区域是一个以POJO为中心的模型,用于与MongoDB DBCollection进行交互并轻松编写存储库样式的数据访问层。

Spring Data MongoDB SpEL表达式注入漏洞 (CVE-2022-22980)


0x02 漏洞描述

近日,VMware发布的安全公告,修复了一个存在于Spring Data MongoDB中的SpEL表达式注入漏洞。


当使用@Query或@Aggregation注解进行查询时,若通过SpEL表达式中形如“?0”的占位符来进行参数赋值,同时应用程序未对用户输入进行过滤处理,则可能受到SpEL表达式注入的影响,成功利用该漏洞的攻击者可在目标服务器上执行代码。


受影响版本:

  • Spring Data MongoDB == 3.4.0

  • 1.0.0 <= Spring Data MongoDB <= 3.3.4


安全版本:

  • Spring Data MongoDB >= 3.4.1

  • Spring Data MongoDB >= 3.3.5


0x03 漏洞信息

漏洞编号:CVE-2022-22980

漏洞POC:暂无

漏洞EXP:暂无

漏洞危害:高危 代码注入


0x04 解决方案

临时修复建议:

  • 您的应用程序需要使用由用户输入控制的SpEL表达式,那么使用数组形式语法“[0]”引入SpEL参数而不是“?0”形式;

  • 实现自定义存储库方法,详见:https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.single-repository-behavior;

  • 通过BeanPostProcessor和受限的QueryMethodEvaluationContextProvider重新配置存储工厂bean;

  • 在调用查询方法时过滤用户输入内容。


通用修复建议:

官方已发布安全版本,请及时下载更新,下载地址:

  • 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版本:https://github.com/spring-projects/spring-data-mongodb/releases/tag/3.3.5



原文始发于微信公众号(寻云安全团队):Spring Data MongoDB SpEL表达式注入漏洞 (CVE-2022-22980)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月21日21:29:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Data MongoDB SpEL表达式注入漏洞 (CVE-2022-22980)http://cn-sec.com/archives/1132314.html

发表评论

匿名网友 填写信息