项目介绍
漏洞描述
利用范围
For community(社区版):
2022.1-u0 (7.14.0) 以下
For subscription(订阅版):
2022.1-u0 (7.14.0) 以下
2021.2-u4 (7.13.4) 以下
2021.1-0307 (7.12.11) 以下
漏洞分析
环境搭建
在/opt/bonita目录下载源码。
在/opt/bonita/BonitaCommunity-2021.2-u0/server/bin/catalina.sh中加入配置。
随即访问http://ip:8080,环境搭建成功。
默认账号密码:install/install
代码调试
从漏洞披露参考文章看,该漏洞产生的原理是由于身份验证/权限绕过,导致没有特权的用户可以通过api端口上传恶意文件,从而命令执行。
2个不同的过滤器类RestAPIAuthorizationFilter、TokenValidatorFilter中的参数excludePattern都被指定为“i18ntranslation”
流程就会继续,就相当于绕过了权限过滤,允许访问资源。
总结就是在URl包含“/i18ntranslation/../”或“;i18ntranslation”就可以绕过权限认证。
为实现远程命令执行,思路是上传恶意文件,上传接口在web.xml中也定义了,为/API/pageUpload
而且未登录的情况下,apisession也没法赋值,就会导致getPagePermissions抛出异常。
所以,为实现远程命令执行,还需要拥有一个普通的用户。
漏洞复现
修复建议
参考材料
1.https://rhinosecuritylabs.com/application-security/cve-2022-25237-bonitasoft-authorization-bypass/
2.https://hub.docker.com/_/bonita
关于Portal Lab
星阑科技 Portal Lab 致力于前沿安全技术研究及能力工具化。主要研究方向为API 安全、应用安全、攻防对抗等领域。实验室成员研究成果曾发表于BlackHat、HITB、BlueHat、KCon、XCon等国内外知名安全会议,并多次发布开源安全工具。未来,Portal Lab将继续以开放创新的态度积极投入各类安全技术研究,持续为安全社区及企业级客户提供高质量技术输出。
原文始发于微信公众号(星阑实验室):【技术干货】CVE-2022-25237 Bonitasoft Platform RCE漏洞分析