近日,奇安信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
声明:本文来自奇安信 CERT,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。