警惕!Spring Data MongoDB SpEL表达式注入漏洞风险通告

admin 2022年6月30日23:39:39安全漏洞评论18 views1395字阅读4分39秒阅读模式

漏洞描述

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


Spring Data MongoDB是Spring Source的一个子项目,旨在为关系型数据库、非关系型数据、Map-Reduce框架、云数据服务等等提供统一的数据访问API。Spring Data MongoDB是Spring框架访问MongoDB的组件,使用它可以非常方便的操作MongoDB数据库。


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


漏洞编号


  • CVE-2022-22980


漏洞等级


  • 高危


漏洞状态


漏洞细节

漏洞PoC

漏洞EXP

在野利用

未发现

未发现

未发现

未发现


受影响的版本


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

  • spring-data-mongodb依赖

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


修复建议


更新至安全版本:

  • 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


缓解措施:

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

  • 实现自定义存储库方法:用自定义存储库方法实现替换SpEL表达式是在应用程序代码中组装动态查询的可行解决方法。有关更多详细信息,请参阅有关存储库自定义的参考文档。

  • 在调用查询方法之前清理参数。

  • 通过具有受限QueryMethodEvaluationContextProvider和BeanPostProcessor重新配置存储库工厂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


原文始发于微信公众号(亚信安全服务):警惕!Spring Data MongoDB SpEL表达式注入漏洞风险通告

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月30日23:39:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  警惕!Spring Data MongoDB SpEL表达式注入漏洞风险通告 http://cn-sec.com/archives/1135042.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: