Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新
奇安信CERT
致力于第一时间为企业级用户提供安全风险通告和有效解决方案。
安全通告
近日,奇安信CERT监测到Spring Data MongoDB SpEL表达式注入漏洞(CVE-2022-22980),当使用@Query或@Aggregation注解进行查询时,若通过SpEL表达式中形如“?0”的占位符来进行参数赋值,同时应用程序未对用户输入进行过滤处理,则可能受到SpEL表达式注入的影响,成功利用该漏洞的攻击者可在目标服务器上执行代码。鉴于漏洞影响范围较大,建议客户尽快做好自查及防护。
本次更新内容:
新增Spring Data MongoDB SpEL 表达式注入漏洞(CVE-2022-22980)复现截图;
新增产品线解决方案。
漏洞名称 |
Spring Data MongoDB SpEL表达式注入漏洞 |
||
公开时间 |
2022-06-20 |
更新时间 |
2022-06-21 |
CVE编号 |
CVE-2022-22980 |
其他编号 |
QVD-2022-9645 |
威胁类型 |
代码执行 |
技术类型 |
SpEL表达式注入 |
厂商 |
VMware |
产品 |
Spring Data MongoDB |
风险等级 |
|||
奇安信CERT风险评级 |
风险等级 |
||
高危 |
蓝色(一般事件) |
||
现时威胁状态 |
|||
POC状态 |
EXP状态 |
在野利用状态 |
技术细节状态 |
已公开 |
未发现 |
未发现 |
未发现 |
漏洞描述 |
当使用@Query或@Aggregation注解进行查询时,若通过SpEL表达式中形如“?0”的占位符来进行参数赋值,同时应用程序未对用户输入进行过滤处理,则可能受到SpEL表达式注入的影响,成功利用该漏洞的攻击者可在目标服务器上执行代码。 |
||
影响版本 |
Spring Data MongoDB == 3.4.0 3.3.0 <= Spring Data MongoDB <= 3.3.4 旧的、不受支持的版本也会受到影响 |
||
不受影响版本 |
Spring Data MongoDB >= 3.4.1 Spring Data MongoDB >= 3.3.5 |
||
其他受影响组件 |
使用 Spring Data MongoDB依赖的应用程序 |
奇安信CERT已成功复现Spring Data MongoDB SpEL(CVE-2022-22980)表达式注入漏洞, 复现截图如下:
风险等级
奇安信 CERT风险评级为:高危
风险等级:蓝色(一般事件)
威胁评估
漏洞名称 |
Spring Data MongoDB SpEL表达式注入漏洞 |
|||
CVE编号 |
CVE-2022-22980 |
其他编号 |
QVD-2022-9645 |
|
CVSS 3.1评级 |
高危 |
CVSS 3.1分数 |
8.2 |
|
CVSS向量 |
访问途径(AV) |
攻击复杂度(AC) |
||
网络 |
高 |
|||
用户认证(Au) |
用户交互 |
|||
无 |
不需要 |
|||
影响范围 |
机密性影响(C) |
|||
不改变 |
高 |
|||
完整性影响(I) |
可用性影响(A) |
|||
高 |
高 |
|||
危害描述 |
当使用@Query或@Aggregation注解进行查询时,若通过SpEL表达式中形如“?0”的占位符来进行参数赋值,同时应用程序未对用户输入进行过滤处理,则可能受到SpEL表达式注入的影响,成功利用该漏洞的攻击者可在目标服务器上执行代码。 |
处置建议
目前,VMware官方已发布漏洞修复补丁,建议用户尽快下载安装补丁程序或采取缓解措施。
1.补丁升级
建议尽快升级至官方修护版本:
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
2. 缓解措施
(1)如果您的应用程序需要使用由用户输入控制的SpEL表达式,那么使用数组形式语法“[0]”引入SpEL参数而不是“?0”形式;
(2)实现自定义存储库方法,详见:https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.single-repository-behavior;
(3)通过BeanPostProcessor和受限的QueryMethodEvaluationContextProvider重新配置存储工厂bean;
(4)在调用查询方法时过滤用户输入内容。
更多修复建议请参考官方发布的安全建议文档:
https://spring.io/blog/2022/06/20/spring-data-mongodb-spel-expression-injection-vulnerability-cve-2022-22980
产品解决方案
奇安信开源卫士已支持
奇安信开源卫士20220622. 1107版本已支持对Spring Data MongoDB SpEL 表达式注入漏洞(CVE-2022-22980)的检测。
奇安信网站应用安全云防护系统已更新防护特征库
奇安信网神网站应用安全云防护系统已全面支持对Spring Data MongoDB SpEL 表达式注入漏洞(CVE-2022-22980)的防护。
奇安信天眼检测方案
奇安信天眼新一代安全感知系统已经能够有效检测针对该漏洞的攻击,请将规则版本升级到3.0.0622.13406或以上版本。规则ID及规则名称:
0x10020F84,Spring Data MongoDB SpEL 表达式注入漏洞(CVE-2022-22980)。奇安信天眼流量探针规则升级方法:系统配置->设备升级->规则升级,选择“网络升级”或“本地升级”。
参考资料
[1]https://spring.io/blog/2022/06/20/spring-data-mongodb-spel-expression-injection-vulnerability-cve-2022-22980
时间线
2022年6月21日,奇安信 CERT发布安全风险通告
2022年6月22日,奇安信 CERT发布安全风险通告第二次更新
代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com
推荐阅读
Spring4Shell 漏洞已遭Mirai 僵尸网络利用
【安全风险通告】Spring Framework远程代码执行漏洞(CVE-2022-22965)安全风险通告第二次更新
【缺陷周话】第44期:Spring Boot 配置错误:不安全的 Actuator
转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~
Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新相关推荐
- 浅入深SpEL表达式注入漏洞总结
SpEL 简介 在Spring 3 中引入了 Spring 表达式语言 (Spring Expression Language,简称SpEL), 这是一种功能强大的表达式语言,支持在运行时查询和操作对 ...
- 【安全风险通告】Spring Framework远程代码执行漏洞(CVE-2022-22965)安全风险通告第二次更新...
奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 安全通告 近日,奇安信CERT监测到Spring Framework存在远程代码执行漏洞(CVE-2022-22965),在 ...
- 漏洞复现----42、Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)
文章目录 Spring Cloud Gateway 漏洞版本 漏洞复现 1.IP:端口,抓包修改请求包,构造包含恶意SpEL表达式的路由 2.刷新网关,触发SpEL表达式执行 3.查看SpEL表达式执 ...
- Apache Log4j任意代码执行漏洞安全风险通告第三次更新
奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 风险通告 近日,奇安信CERT监测到Apache Log4j存在任意代码执行漏洞.经过分析,该组件存在Java JNDI注入 ...
- netlogon启动后停止_【通告更新】漏洞EXP已流出,影响巨大,微软NetLogon权限提升漏洞安全风险通告第三次更新...
近日,奇安信CERT监测到国外安全厂商发布了NetLogon 权限提升漏洞(CVE-2020-1472)的详细技术分析文章和验证脚本.此漏洞是微软8月份发布安全公告披露的紧急漏洞,CVSS漏洞评分10 ...
- Spring Boot框架表达式注入漏洞
2019独角兽企业重金招聘Python工程师标准>>> 高危漏洞的曝光总是发生在意想不到的时刻:周末所有人都准备享受周末的时间,Spring Boot框架的SpEL表达式注入通用漏洞 ...
- mongodb数据库java接口,MongoDB —— 使用Spring Data MongoDB操作数据库
我们使用Spring Data MongoDB可以方便的在Spring boot项目中操作MongoDB 文档地址:https://docs.spring.io/spring-boot/docs/2. ...
- Spring Data MongoDB示例
Spring Data MongoDB示例 欢迎使用Spring Data MongoDB示例.Spring Data MongoDB是将Spring Framework与最广泛使用的NoSQL数据库 ...
- mongo java 注解,在Java中使用Spring Data MongoDB操作Mong | zifangsky的个人博客
前言:在上一篇文章中(PS:https://www.zifangsky.cn/923.html)我简单介绍了如何在Linux中安装MongoDB以及MongoDB的增删改查等基本命令用法(PS:更多M ...
最新文章
- Timer和TimerTask
- 【Redis学习笔记】2018-06-12 复制与传播
- Android 第三方库RxLifecycle使用
- 如何反复读取同一个 InputStream 对象
- Unity 开发和配置
- for循环如果先--_乐字节Java循环:循环控制和嵌套循环
- AAAI 2020 | 腾讯优图10篇论文入选,含速算识别、视频识别等主题
- 有mysql的虚拟主机吗,虚拟主机能用mysql么
- 投色子--html demo
- 12. nc/netcat 用法举例
- python数据分析:Pandas
- vuereact视频截图
- 基于C++的高性能http框架cinatra及其web框架示例feather介绍及开发演示
- 椭圆曲线加密中定义的加法运算
- 微信小程序实现点击分享按钮时动态改变分享图片和标题
- window下Python查看已经启动的进程名称并关闭
- Android 8.0+调用相机相册
- python代码编程教学入门,python代码编程火影忍者
- Scala中 class和case class的区别
- 2017年全国大学生电子设计竞赛河北省获奖名单
热门文章
- js生成随机数和把日期格式转换成yyyyMMddHHmmss的方法
- MySQL:尽量不要用存储过程封装业务逻辑
- PSNR峰值信噪比matlab实现
- java+opencv+selenium实现滑块滑动破解
- 动态实现web网页登陆和注册功能[保姆级教学]
- 实现table表格数据按名称字段分层,各层都有一个合计行,自定义的表格总合计行(vue.js+elementUI)
- 医疗图像分割(二)snake模型综述
- 智慧城市照明系统方案
- 深度学习之BP神经网络
- 基于java+SSM+jsp框架的房屋租赁管理系统的设计和实现(附源码)