BeanValidation JSR 380 EL表达式注入漏洞之OneDev Pre-Auth RCE

VSole2021-12-27 22:09:41

引言

最近看到网上有人发表关于BeanValidation JSR 380 EL表达式注入漏洞的分析文章,在历史上爆出的相关漏洞中,比较有名的包括Nexus Repository Manager CVE-2018-16621以及后来的绕过漏洞CVE-2020-10693/CVE-2020-10204等,这几个漏洞网上高质量的分析文章已经很多了,这里再啰嗦一遍意义不大,下面将今年爆出的另一个BeanValidation JSR 380 漏洞分享给大家。

OneDev 是一个国产的类GitLab开源DevOps平台,可以作为GitLab的替代品。在翻阅代码更新时,发现一个BeanValidation JSR 380漏洞信息:

漏洞分析

OneDev采用BeanValidation方式对HTTP请求的参数进行验证。比如在`io.onedev.server.rest.ProjectResource`中:

在GET处理方式中存在`@ValidQueryParams`的装饰器,主要用于对参数进行格式检查:

引入名为`ValidQueryParamsValidator`的验证器,即请求必须通过`ValidQueryParamsValidator`进行格式检查:

提取请求的参数带入`buildConstraintViolationWithTemplate`,按照JSR 380规范,如果参数符合EL表达式格式,将会对其进行插值导致出现EL表达式解析。构造请求进行调试验证:

触发了漏洞。调用栈如下:

修复方式

BeanValidation JSR 380 EL表达式注入漏洞其中一种有效的修复方式是禁止使用EL插值,OneDev官方就是采用的这种方法,补丁对比如下:

显式注册一个`ParameterMessageInterpolator`参数来覆盖默认的EL插值。

信息安全注入漏洞
本作品采用《CC 协议》,转载必须注明作者和本文链接
近日,国家信息安全漏洞库收到关于Apache OpenOffice 参数注入漏洞情况的报送。目前,Apache官方已发布新版本修复了该漏洞,建议用户及时确认产品版本,尽快采取修补措施。
​近日,国家信息安全漏洞库(CNNVD)收到关于Redis代码注入漏洞(CNNVD-202202-1622、CVE-2022-0543)情况的报送。
近日,国家信息安全漏洞库(CNNVD)收到关于Webmin命令注入漏洞(CNNVD-201908-1151、CVE-2019-15107)情况的报送。攻击者利用该漏洞可以进行远程代码执行攻击。Webmin 1.920及其以下版本均受漏洞影响。目前,Webmin官方已发布了Webmin 1.930版本修复该漏洞,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。
近日,国家信息安全漏洞库(CNNVD)收到关于Sonicwall SRA/SMA SQL注入漏洞(CNNVD
近日,国家信息安全漏洞库(CNNVD)收到关于Sonicwall SRA/SMA SQL注入漏洞(CNNVD-202107-1057)情况的报送。
漏洞态势根据国家信息安全漏洞库(CNNVD)统计,2021年9月份采集安全漏洞共1704个。本月接报漏洞17
公开漏洞情况 本周CNNVD采集安全漏洞427个。本周国内厂商漏洞9个,友讯公司漏洞数量最多,有5个。本周共发布超危漏洞16个,高危漏洞144个,中危漏洞255个,低危漏洞12个。根据补丁信息统计,合计412个漏洞已有修复补丁发布,整体修复率为96.49%。目前,VMware官方已经发布漏洞修复补丁,建议用户及时确认是否受到漏洞影响,尽快采取修补措施。
近日,国家信息安全漏洞库(CNNVD)收到关于Microsoft MSHTML.DLL 代码注入漏洞
根据国家信息安全漏洞库统计,2021年8月份采集安全漏洞共1911个。合计1633个漏洞已有修复补丁发布,本月整体修复率85.45%。截至2021年08月31日,CNNVD采集漏洞总量已达167566个。总体来看,本月整体修复率,由上月的88.29%下降至本月的85.45%。
VSole
网络安全专家