CVE-2022-22954 VMware Workspace ONE Access SSTI RCE
字数 1916 2025-08-29 08:32:19
VMware Workspace ONE Access SSTI RCE漏洞分析(CVE-2022-22954)
1. 漏洞概述
CVE-2022-22954是VMware Workspace ONE Access中存在的一个服务器端模板注入(SSTI)漏洞,可导致远程代码执行(RCE)。该漏洞存在于catalog-portal应用的Freemarker模板引擎中,攻击者可以通过构造特定的请求利用此漏洞在目标系统上执行任意命令。
2. 环境搭建
- 下载受影响版本的VMware Workspace ONE Access镜像:
identity-manager-21.08.0.1-19010796_OVF10.ova - 导入OVA文件时需设置FQDN(完全限定域名),否则安装时连接数据库会报错
3. 漏洞分析
3.1 漏洞位置
漏洞位于catalog-portal应用中:
- 路径:
/opt/vmware/horizon/workspace/webapps/catalog-portal - 关键文件:
lib/endusercatalog-ui-1.0-SNAPSHOT-classes.jar - 注入点:
templates/customError.ftl中的Freemarker模板
3.2 漏洞触发流程
-
模板注入点确认:
- 在
customError.ftl中发现Freemarker模板注入点 - Freemarker官方文档确认
eval内置函数存在安全问题
- 在
-
请求路由分析:
- 控制器类:
com.vmware.endusercatalog.ui.web.UiErrorController - 关键方法:
handleGenericError(无@RequestMapping注解) - 需要通过其他控制器调用才能触发
- 控制器类:
-
异常处理机制:
com.vmware.endusercatalog.ui.web.UiApplicationExceptionResolver类处理异常- 通过
@ExceptionHandler注解标记为异常处理类 - 当抛出Exception类型异常时会进入
handleAnyGenericException - 最终返回
/ui/view/error并设置errorObj所需属性
3.3 利用条件
需要满足以下条件才能触发漏洞:
- 能够控制异常参数
- 能够将Freemarker payload传入errorObj
- 绕过
isSpecificUnauthError和isMdmOnlyUnauthorizedAccessError检查
4. 漏洞利用
4.1 利用路径
-
初始尝试:
- 通过
WorkspaceOauth2CodeVerificationController#authorizeError构造请求 - 示例:
https://id.test.local/catalog-portal/ui/oauth/verify?error=1&error_description=a - 但会被302重定向,无法触发handleGenericError
- 通过
-
正确利用路径:
- 通过
AuthContextPopulationInterceptor拦截器触发 - 构造
InvalidAuthContextException异常 - 控制
deviceId和deviceType参数
- 通过
4.2 利用限制
-
Host限制:
- 可以为
localhost或域名 - 不能为IP地址(需与FQDN匹配)
- 可以为
-
后利用限制:
- 写入webshell路径:
/opt/vmware/horizon/workspace/webapps/catalog-portal/ - POST请求会校验CSRF,导致部分工具无法连接
- 建议使用内存马(listener类型)绕过限制
- 写入webshell路径:
5. 漏洞修复
- 升级到VMware官方发布的安全版本
- 临时缓解措施:
- 限制对catalog-portal应用的访问
- 监控异常请求模式
6. 参考链接
- Freemarker安全文档:https://freemarker.apache.org/docs/ref_builtins_expert.html#ref_builtin_eval
- VMware安全公告:参考VMware官方安全公告
7. 总结
CVE-2022-22954是一个典型的SSTI漏洞,通过精心构造的异常触发Freemarker模板注入,最终实现RCE。漏洞利用需要深入理解应用的路由机制和异常处理流程,并绕过特定的安全检查。在实际利用中需要注意Host限制和后利用阶段的CSRF校验问题。