【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞

渗透技巧 2年前 (2022) admin
1,426 0 0
漏洞信息


VMware Workspace ONE Access(以前称为VMware Identity Manager)旨在通过多因素身份验证、条件访问和单点登录,让您的员工更快地访问SaaS、Web和本机移动应用程序。


近日VMware官网发布了VMware Workspace ONE Access存在多个漏洞:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


受影响版本如下:


  • VMware Workspace ONE Access Appliance (版本号:20.10.0.0 ,20.10.0.1 ,21.08.0.0 ,21.08.0.1 )

  • VMware Identity Manager Appliance (版本号:3.3.3 , 3.3.4 , 3.3.5 ,3.3.6)

  • VMware Realize Automation (版本号:7.6)


其中的CVE-2022-22954是一个匿名服务器模板注入漏洞,未经身份验证的攻击者可以利用此漏洞进行远程任意代码执行。

环境搭建


下载存在漏洞的VMware Workspace ONE Access OVA文件,利用ESXI完成安装,需要注意的是主机名需要设置为域名,否则在配置数据库的过程中将会报错。最终完成配置后启动成功:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


通过证书免密登录和挂载修改`shadow`文件的方式可以拿到底层ROOT权限,启动脚本位于`/opt/vmware/horizon/workspace/bin`,`init.d.sh`文件用于控制启动状态,`setenv.sh`可以配置远程调试:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


重启服务后将开启远程调试。

补丁分析


从补丁分析入手。漏洞爆出后,官方给出了一个修复脚本`HW-154129-applyWorkaround.py`:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


既然是模板渲染漏洞,那么我们首先关注对模板的修改。脚本删除了`endusercatalog-ui-1.0-SNAPSHOT-classes.jar`中自带的模板`customError.ftl`:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


在`customError.ftl`模板中调用了freemarker引擎的`eval`函数来渲染`errObj`:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


查看freemarker官方文档:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


可以判断`customError.ftl`在模板渲染过程中导致出现了漏洞。

漏洞分析


找到渲染`customError.ftl`模板的相关代码位于`com.vmware.endusercatalog.ui.web.UiErrorController#handleGenericError`:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


搜索调用关系:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


继续寻找`/ui/view/error`的调用,因为这是一个API接口,所以直接构造URL请求当然可以达到,但是这样无法从请求中提取`javax.servlet.error.message`,导致目标渲染的内容不可控。通过搜索找到另一处调用位于`UiApplicationExceptionResolver#resolveException`:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


存在`javax.servlet.error.message`赋值过程。继续搜索`resolveException`调用:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


如下图所示,`handleHttpMediaTypeNotAcceptableException`和`handleAnyGenericException`对应的都是全局异常的处理过程:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


显然`handleAnyGenericException`适配的异常更加通用。`UiApplicationExceptionResolver`类限定了全局异常处理适用的类型范围为`UIController`、`HubUIController`和`WorkspaceOauth2CodeVerificationController`:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


分析到这里之后,经过不断尝试,但是一直也没有实现对变量`errObj`的完全控制。在深入分析其中的一些基础性定义之后,最终找到一个完美实现内容可控的利用方式。获取的`errorObj`变量如下:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞


最终通过freemarker模板渲染实现RCE:


【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。



点关注,不迷路!

【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞

原文始发于微信公众号(且听安全):【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞

版权声明:admin 发表于 2022年4月11日 上午7:30。
转载请注明:【最新漏洞预警】CVE-2022-22954 VMware Workspace ONE Access SSTI漏洞 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...