Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新
Spring Data MongoDB SpEL表达式注入漏洞安全风险通告第二次更新
代码卫士 2022-06-23 18:00
奇安信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
推荐阅读
【安全风险通告】Spring Framework远程代码执行漏洞(CVE-2022-22965)安全风险通告第二次更新
【缺陷周话】第44期:Spring Boot 配置错误:不安全的 Actuator
转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “
在看
” 或 “
赞
” 吧~