Spring Data MongoDBSpEL表达式注入漏洞安全风险通告
Spring Data MongoDBSpEL表达式注入漏洞安全风险通告
原创 QAX CERT 奇安信 CERT 2022-06-21 14:36
奇安信CERT
致力于
第一时间
为企业级用户提供安全风险
通告
和
有效
解决方案。
安全通告
近日,奇安信CERT监测到Spring Data MongoDB SpEL表达式注入漏洞(CVE-2022-22980),当使用@Query或@Aggregation注解进行查询时,若通过SpEL表达式中形如“?0”的占位符来进行参数赋值,同时应用程序未对用户输入进行过滤处理,则可能受到SpEL表达式注入的影响,成功利用该漏洞的攻击者可在目标服务器上执行代码。鉴于漏洞影响范围较大,建议客户尽快做好自查及防护。
漏洞名称 |
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编号 |
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
参考资料
[1]https://spring.io/blog/2022/06/20/spring-data-mongodb-spel-expression-injection-vulnerability-cve-2022-22980
时间线
2022年6月21日,
奇安信 CERT发布安全风险通告
点击阅读原文
到奇安信NOX-安全监测平台查询更多漏洞详情