目录导航
VMware 警告 Workspace ONE Access 中存在严重的远程代码执行错误
VMware敦促客户更新他们的软件以解决关键漏洞,包括 Workspace ONE Access 中的远程代码执行 (RCE) 漏洞。
周三,这家科技巨头发布了一份关于其企业软件漏洞的安全咨询警告。受影响的产品包括 VMware Workspace ONE Access、VMware Identity Manager (vIDM)、VMware vRealize Automation (vRA)、VMware Cloud Foundation 和 vRealize Suite Lifecycle Manager。
第一个漏洞是 CVE-2022-22954,影响 VMware Workspace ONE Access 和 Identity Manager。CVE-2022-22954 被描述为服务器端模板注入 RCE,并获得了 9.8 的 CVSS 严重性评分。只要有网络访问权限,攻击者就可以利用该漏洞。
VMware 还开发了补丁来解决 CVE-2022-22955 和 CVE-2022-22956;两者都发布了 9.8 的 CVSS 分数,影响了 VMware Workspace ONE Access。这些漏洞是在 OAuth2 ACS 框架中发现的。
根据供应商的说法,“由于身份验证框架中暴露的端点,恶意行为者可能会绕过身份验证机制并执行任何操作。”
其他两个漏洞 CVE-2022-22957 和 CVE-2022-22958 (CVSS 9.1) 已在 Workspace ONE Access、Identity Manager 和 vRealize Automation 中得到解决。威胁参与者可以通过管理 Java 应用程序及其数据库连接的 JDBC URI 参数触发不受信任数据的反序列化,从而触发 RCE。
但是,攻击者必须具有管理权限。
这三个软件也容易受到 CVE-2022-22959 (CVSS 8.8) 的攻击,这是一个跨站点请求伪造 (CSRF) 漏洞,可用于验证恶意 JDBC URI。
VMware 还解决了本地权限提升漏洞 CVE-2022-22960 (CVSS 7.8) 和 Workspace ONE Access、Identity Manager 和 vRealize Automation 中的信息泄露问题 CVE-2022-22961 (CVSS 5.3)。
VMware 没有发现任何证据表明这些漏洞被广泛利用。
补丁是可用的,但如果无法做到这一点,供应商还提供了解决方法说明以降低攻击风险。
感谢奇虎 360 漏洞研究所的 Steven Seeley 私下向 VMware 报告了这些漏洞。
VMware漏洞公告详情
1. 受影响的产品
- VMware Workspace ONE Access(访问)
- VMware 身份管理器 (vIDM)
- VMware vRealize 自动化 (vRA)
- VMware 云基础
- vRealize Suite 生命周期管理器
即:
- VMware Workspace ONE Access (Access)
- VMware Identity Manager (vIDM)
- VMware vRealize Automation (vRA)
- VMware Cloud Foundation
- vRealize Suite Lifecycle Manager
2. 简介
多个漏洞已私下报告给 VMware。补丁可用于修复受影响的 VMware 产品中的这些漏洞。
3a.服务器端模板注入远程代码执行漏洞 (CVE-2022-22954)
描述
VMware Workspace ONE Access and Identity Manager 包含一个由于服务器端模板注入而导致的远程代码执行漏洞。VMware 已将此问题的严重性评估为处于 严重严重性范围内 ,CVSSv3 基本得分最高为 9.8。
已知的攻击媒介
具有网络访问权限的恶意行为者可以触发可能导致远程代码执行的服务器端模板注入。
解决
要修复 CVE-2022-22954,请应用下方“解决方案矩阵”的“修复版本”列中列出的补丁程序。
解决方法
CVE-2022-22954 的解决方法已记录在下方“响应矩阵”的“解决方法”列中列出的 VMware 知识库文章中。
附加文件
创建了补充博客文章以进行进一步说明。请参阅: https ://via.vmw.com/vmsa-2022-0011-qna
笔记
没有。
致谢
VMware 非常感谢奇虎 360 漏洞研究所的 Steven Seeley (mr_me) 向我们报告这些问题。
3b. OAuth2 ACS 身份验证绕过漏洞(CVE-2022-22955、CVE-2022-22956)
描述
VMware Workspace ONE Access 在 OAuth2 ACS 框架中有两个身份验证绕过漏洞。VMware 已将这些问题的严重性评估为处于 严重严重性范围内 ,CVSSv3 基本得分最高为 9.8。
已知的攻击媒介
由于身份验证框架中暴露的端点,恶意行为者可能会绕过身份验证机制并执行任何操作。
解决
要修复 CVE-2022-22955 和 CVE-2022-22956,请应用下方“解决方案矩阵”的“修复版本”列中列出的补丁程序。
解决方法
CVE-2022-22955 和 CVE-2022-22956 的变通办法已记录在下方“响应矩阵”的“变通办法”列中列出的 VMware 知识库文章中。
附加文件
创建了补充博客文章以进行进一步说明。请参阅: https ://via.vmw.com/vmsa-2022-0011-qna
笔记
这些问题仅影响 Workspace ONE Access。
致谢
VMware 非常感谢奇虎 360 漏洞研究所的 Steven Seeley (mr_me) 向我们报告这些问题。
3c. JDBC 注入远程代码执行漏洞(CVE-2022-22957、CVE-2022-22958)
描述
VMware Workspace ONE Access、Identity Manager 和 vRealize Automation 包含两个远程代码执行漏洞。VMware 已将这些问题的严重性评估为处于 严重严重性范围内 ,CVSSv3 基本得分最高为 9.1。
已知的攻击媒介
具有管理访问权限的恶意行为者可以通过恶意 JDBC URI 触发不可信数据的反序列化,这可能导致远程代码执行。
解决
要修复 CVE-2022-22957 和 CVE-2022-22958,请应用下方“解决方案矩阵”的“修复版本”列中列出的修补程序。
解决方法
CVE-2022-22957 和 CVE-2022-22958 的解决方法已记录在下方“响应矩阵”的“解决方法”列中列出的 VMware 知识库文章中。
附加文件
创建了补充博客文章以进行进一步说明。请参阅: https ://via.vmw.com/vmsa-2022-0011-qna
笔记
没有。
致谢
VMware 非常感谢奇虎 360 漏洞研究所的 Steven Seeley (mr_me) 向我们报告这些问题。
3d. 跨站请求伪造漏洞 (CVE-2022-22959)
描述
VMware Workspace ONE Access、Identity Manager 和 vRealize Automation 包含一个跨站点请求伪造漏洞。VMware 已将此问题的严重性评估为在 重要严重性范围内 ,CVSSv3 基本得分最高为 8.8。
已知的攻击媒介
恶意行为者可以通过跨站点请求伪造来欺骗用户,以无意中验证恶意 JDBC URI。
解决
要修复 CVE-2022-22959,请应用下方“解决方案矩阵”的“修复版本”列中列出的补丁程序。
解决方法
CVE-2022-22959 的变通办法已记录在下方“响应矩阵”的“变通办法”列中列出的 VMware 知识库文章中。
附加文件
创建了补充博客文章以进行进一步说明。请参阅: https ://via.vmw.com/vmsa-2022-0011-qna
笔记
没有。
致谢
VMware 非常感谢奇虎 360 漏洞研究所的 Steven Seeley (mr_me) 向我们报告这些问题。

3e.本地权限提升漏洞 (CVE-2022-22960)
描述
由于支持脚本中的权限不正确,VMware Workspace ONE Access、Identity Manager 和 vRealize Automation 包含一个权限提升漏洞。VMware 已评估此问题的严重性在 重要严重性范围内 ,CVSSv3 基本得分最高为 7.8。
已知的攻击媒介
具有本地访问权限的恶意行为者可以将权限提升到“root”。
解决
要修复 CVE-2022-22960,请应用下方“解决方案矩阵”的“修复版本”列中列出的补丁程序。
解决方法
CVE-2022-22960 的变通办法已记录在下方“响应矩阵”的“变通办法”列中列出的 VMware 知识库文章中。
附加文件
创建了补充博客文章以进行进一步说明。请参阅: https ://via.vmw.com/vmsa-2022-0011-qna
笔记
没有。
致谢
VMware 非常感谢奇虎 360 漏洞研究所的 Steven Seeley (mr_me) 向我们报告这些问题。
3f. 信息泄露漏洞 (CVE-2022-22961)
描述
由于返回过多信息,VMware Workspace ONE Access、Identity Manager 和 vRealize Automation 包含一个信息泄露漏洞。VMware 已评估此问题的严重性在 中等严重性范围内 ,CVSSv3 基本得分最高为 5.3。
已知的攻击媒介
具有远程访问权限的恶意行为者可能会泄露目标系统的主机名。成功利用此问题可导致针对受害者。
解决
要修复 CVE-2022-22961,请应用下方“解决方案矩阵”的“修复版本”列中列出的补丁程序。
解决方法
CVE-2022-22961 的解决方法已记录在下方“响应矩阵”的“解决方法”列中列出的 VMware 知识库文章中。
附加文件
创建了补充博客文章以进行进一步说明。请参阅: https ://via.vmw.com/vmsa-2022-0011-qna
笔记
没有。
致谢
VMware 非常感谢奇虎 360 漏洞研究所的 Steven Seeley (mr_me) 向我们报告这些问题。
响应矩阵 – 访问 21.08.x:
产品 | 版本 | 系统 | CVE 标识符 | CVSSv3 | 严重性 | 修复版本 | 解决方法 | 附加文件 |
Access | 21.08.0.1, 21.08.0.0 | Linux | CVE-2022-22954 | 9.8 | 危急 | KB88099 | KB88098 | 常问问题 |
Access | 21.08.0.1, 21.08.0.0 | Linux | CVE-2022-22955、CVE-2022-22956 | 9.8 | 危急 | KB88099 | KB88098 | 常问问题 |
Access | 21.08.0.1, 21.08.0.0 | Linux | CVE-2022-22957、CVE-2022-22958 | 9.1 | 危急 | KB88099 | KB88098 | 常问问题 |
Access | 21.08.0.1, 21.08.0.0 | Linux | CVE-2022-22959 | 8.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
Access | 21.08.0.1, 21.08.0.0 | Linux | CVE-2022-22960 | 7.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
Access | 21.08.0.1, 21.08.0.0 | Linux | CVE-2022-22961 | 5.3 | 缓和 | KB88099 | 没有 | 常问问题 |
响应矩阵 – 访问 20.10.x:
产品 | 版本 | 运行环境 | CVE 标识符 | CVSSv3 | 严重性 | 修复版本 | 解决方法 | 附加文件 |
Access | 20.10.0.1, 20.10.0.0 | Linux | CVE-2022-22954 | 9.8 | 危急 | KB88099 | KB88098 | 常问问题 |
Access | 20.10.0.1, 20.10.0.0 | Linux | CVE-2022-22955、CVE-2022-22956 | 9.8 | 危急 | KB88099 | KB88098 | 常问问题 |
Access | 20.10.0.1, 20.10.0.0 | Linux | CVE-2022-22957、CVE-2022-22958 | 9.1 | 危急 | KB88099 | KB88098 | 常问问题 |
Access | 20.10.0.1, 20.10.0.0 | Linux | CVE-2022-22959 | 8.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
Access | 20.10.0.1, 20.10.0.0 | Linux | CVE-2022-22960 | 7.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
Access | 20.10.0.1, 20.10.0.0 | Linux | CVE-2022-22961 | 5.3 | 缓和 | KB88099 | 没有 | 常问问题 |
响应矩阵 – Identity Manager 3.3.x:
产品 | 版本 | 运行环境 | CVE 标识符 | CVSSv3 | 严重性 | 修复版本 | 解决方法 | 附加文件 |
vIDM | 3.3.6, 3.3.5, 3.3.4, 3.3.3 | Linux | CVE-2022-22954 | 9.8 | 危急 | KB88099 | KB88098 | 常问问题 |
vIDM | 3.3.6, 3.3.5, 3.3.4, 3.3.3 | Linux | CVE-2022-22955、CVE-2022-22956 | 不适用 | 不适用 | 不受影响 | 不适用 | 不适用 |
vIDM | 3.3.6, 3.3.5, 3.3.4, 3.3.3 | Linux | CVE-2022-22957、CVE-2022-22958 | 9.1 | 危急 | KB88099 | KB88098 | 常问问题 |
vIDM | 3.3.6, 3.3.5, 3.3.4, 3.3.3 | Linux | CVE-2022-22959 | 8.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
vIDM | 3.3.6, 3.3.5, 3.3.4, 3.3.3 | Linux | CVE-2022-22960 | 7.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
vIDM | 3.3.6, 3.3.5, 3.3.4, 3.3.3 | Linux | CVE-2022-22961 | 5.3 | 缓和 | KB88099 | 没有 | 常问问题 |
响应矩阵 – vRealize Automation (vIDM):
产品 | 版本 | 运行环境 | CVE 标识符 | CVSSv3 | 严重性 | 修复版本 | 解决方法 | 附加文件 |
vRealize Automation [1] | 8.x | Linux | CVE-2022-22954、CVE-2022-22955、CVE-2022-22956、CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960、CVE-2022-22961 | 不适用 | 不适用 | 不受影响 | 不适用 | 不适用 |
vRealize Automation (vIDM) | 7.6 | Linux | CVE-2022-22954 | 不适用 | 不适用 | 不受影响 | 不适用 | 不适用 |
vRealize Automation (vIDM) | 7.6 | Linux | CVE-2022-22955、CVE-2022-22956 | 不适用 | 不适用 | 不受影响 | 不适用 | 不适用 |
vRealize Automation (vIDM) [2] | 7.6 | Linux | CVE-2022-22957、CVE-2022-22958 | 9.1 | 危急 | KB88099 | KB88098 | 常问问题 |
vRealize Automation (vIDM) [2] | 7.6 | Linux | CVE-2022-22959 | 8.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
vRealize Automation (vIDM) [2] | 7.6 | Linux | CVE-2022-22960 | 7.8 | 重要的 | KB88099 | KB88098 | 常问问题 |
vRealize Automation (vIDM) | 7.6 | Linux | CVE-2022-22961 | 不适用 | 不适用 | 不受影响 | 不适用 | 不适用 |
[1] vRealize Automation 8.x 不受影响,因为它不使用嵌入式 vIDM。如果 vIDM 已与 vRA 8.x 一起部署,则应将修复程序直接应用于 vIDM。
[2] vRealize Automation 7.6 受到影响,因为它使用嵌入式 vIDM。
部署响应矩阵组件的受影响产品套件:
产品 | 版本 | 运行环境 | CVE 标识符 | CVSSv3 | 严重性 | 修复版本 | 解决方法 | 附加文件 |
VMware Cloud Foundation (vIDM) | 4.x | 任何 | CVE-2022-22954、CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960、CVE-2022-22961 | 9.8, 9.1, 9.1, 8.8, 7.8, 5.3 | 危急 | KB88099 | KB88098 | 常问问题 |
VMware Cloud Foundation (vRA) | 3.x | 任何 | CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960 | 9.1, 9.1, 8.8, 7.8 | 危急 | KB88099 | KB88098 | 常问问题 |
vRealize Suite Lifecycle Manager (vIDM) | 8.x | 任何 | CVE-2022-22954、CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960、CVE-2022-22961 | 9.8, 9.1, 9.1, 8.8, 7.8, 5.3 | 危急 | KB88099 | KB88098 | 常问问题 |
4. 参考文献
修复版本:https ://kb.vmware.com/s/article/88099
解决方法: https ://kb.vmware.com/s/article/88098
Mitre CVE 词典链接:
https ://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22954
https://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2022-22955
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22956
https://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2022-22957
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22958
https://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2022-22959
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22960
https://cve.mitre.org/cgi-bin/cvename.cgi?name= CVE-2022-22961
第一个 CVSSv3 计算器:
CVE-2022-22954: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2022-22955: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2022-22956: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2022-22957: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
CVE-2022-22958: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
CVE-2022-22959: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CVE-2022-22960: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVE-2022-22961: https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
5. 变更日志
2022-04-06:VMSA-2022-0011
初始安全公告。
6. 联系方式
产品安全通知和公告的电子邮件列表:
https://lists.vmware.com/cgi-bin/mailman/listinfo/security-announce
此安全公告发布到以下列表中:
电子邮件:[email protected]
PGP 密钥位于:
VMware 安全公告
https://www.vmware.com/security/advisories
VMware 安全响应策略
https://www.vmware.com/support/policies/security_response.html
VMware 生命周期支持阶段
https://www.vmware.com/support/policies/lifecycle.html
VMware 安全与合规博客
https://blogs.vmware.com/security
推特
漏洞解决办法
HW-154129 – 解决 CVE-2022-22954、CVE-2022-22955、CVE-2022-22956、CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960 的解决方法说明Workspace ONE 访问设备 (VMware Identity Manager) (88098)
目的
已确定 CVE-2022-22954、CVE-2022-22955、CVE-2022-22956、CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960、CVE-2022-22961影响 Workspace ONE Access (VMware Identity Manager)。这些漏洞及其对 VMware 产品的影响记录在以下VMware 安全公告 (VMSA-2022-0011)中,请在继续之前查看此文档:
影响/风险
受影响的产品套件
vRealize Automation (vRA) 7.x、8.x:vRA 产品套件可能会受到影响。如果在 vRA 环境中使用 vIDM,请遵循此知识库文章,并将解决方法直接应用于 vIDM 设备。
注意:使用 vRA 7.6 的客户必须遵循特定于此版本的说明,如解决方法部分中所列
vRealize Suite Automation Lifecycle Manager (vRSLCM) 8.x:vRSLCM 产品套件可能会受到影响。如果在 vRSLCM 环境中使用 vIDM,请遵循此知识库文章,并将解决方法直接应用于 vIDM 设备。
VMware Cloud Foundation (VCF) 4.x:VCF 产品套件可能会受到影响。如果在 VCF 环境中使用 vIDM,请遵循此知识库文章,并将解决方法直接应用于 vIDM 设备。
受影响版本列表
产品组件 | 版本 |
VMware Workspace ONE Access 设备 | 21.08.0.1 |
VMware Workspace ONE Access 设备 | 21.08.0.0 |
VMware Workspace ONE Access 设备 | 20.10.0.1 |
VMware Workspace ONE Access 设备 | 20.10.0.0 |
VMware Identity Manager 设备 | 3.3.6 |
VMware Identity Manager 设备 | 3.3.5 |
VMware Identity Manager 设备 | 3.3.4 |
VMware Identity Manager 设备 | 3.3.3 |
VMware 实现自动化 | 7.6 |
解决办法
本文档中描述的解决方法仅作为临时解决方案,将导致某些功能的丢失,如下所述。
- 应应用上述公告中记录的修补程序来修复这些漏洞,并且它们的部署不会影响功能。
- 如果在应用了变通办法的节点上执行, KB 88099中提到的修补程序安装程序将自动恢复变通办法。或者,您可以使用下面提到的 revert-workaround-procedures 手动执行此操作
部署变通办法导致的功能影响
- 解决方法到位后,将无法更改Workspace ONE 访问配置设置(通过https://{FQDN}:8443/cfg/页面访问)。如果需要更改,请按照以下说明恢复解决方法,进行所需的更改并再次重新应用解决方法。
- 此外,大部分系统诊断仪表板都不会显示。
- OAuth2 令牌激活将失败
注意:如果 VMware Identity Manager 由 vRealize Suite Lifecycle Manager 管理,则在应用解决方法后,清单同步等第 2 天操作可能会失败。为此,请恢复解决方法并执行第 2 天操作。 解决方法
部署前指南:
- 建议先将不受支持的版本实例升级到较新的受支持版本,然后再应用变通方法。此过程可能不适用于不受支持的旧版本。请参阅VMware Lifecycle Matrix以获取受支持的产品版本列表。
- 强烈建议在应用解决方法之前拍摄设备快照
- 有关特定于该版本 vRA 的步骤,请参阅vRA 7.6 的解决方法说明部分
- 如果您正在运行集群部署,请在集群的所有其他节点上重复以下步骤。
应用解决方法的过程:
- 以 sshuser 身份登录,sudo 以 root 级别访问。
- 下载HW-154129-applyWorkaround.py脚本并将其传输到虚拟设备。VMware 建议使用 SCP 协议将文件传输到设备。也可以使用诸如 winscp 之类的工具将文件传输到设备。
- 使用“cd”命令导航到下载的文件路径。
- 使用以下命令运行 Python 脚本
python3 HW-154129-applyWorkaround.py
HW-154129-applyWorkaround.py源码:
# Copyright 2022 VMware, Inc. All rights reserved.
# Dated April 6th, 2022
import subprocess as sp
import xml.etree.ElementTree as ET
import os, sys
from os.path import exists
import shutil
if not os.geteuid()==0:
sys.exit('This script must be run as root!')
cmd_output = sp.getoutput('vamicli version --appliance')
version=cmd_output.split()[2]
endusercatalog_classes_jar = '/opt/vmware/horizon/workspace/webapps/catalog-portal/WEB-INF/lib/endusercatalog-ui-1.0-SNAPSHOT-classes.jar'
cfg_web_xml='/opt/vmware/horizon/workspace/webapps/cfg/WEB-INF/web.xml'
saas_web_xml='/opt/vmware/horizon/workspace/webapps/SAAS/WEB-INF/web.xml'
workaround_flag_file='/usr/local/horizon/conf/flags/HW-154129-'+ version +'-workaround.applied'
patch_flag_file='/usr/local/horizon/conf/flags/HW-154129-'+ version +'-hotfix.applied'
cfg_security_constraint='''
<security-constraint>
<web-resource-collection>
<web-resource-name>blocks cfg urls</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint />
</security-constraint>
'''
oauth2_security_constraint='''
<security-constraint>
<web-resource-collection>
<web-resource-name>blocks generateActivationToken url</web-resource-name>
<url-pattern>/API/1.0/REST/oauth2/generateActivationToken/*</url-pattern>
<url-pattern>/API/1.0/REST/system/dbCheck</url-pattern>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint />
</security-constraint>
'''
def apply_workaround(filename, element):
with open(filename, encoding='UTF-8') as f:
tree = ET.parse(f)
ET.register_namespace('', 'http://java.sun.com/xml/ns/javaee')
root = tree.getroot()
subelement=ET.fromstring(element)
root.append(subelement)
tree.write(filename)
def checkWorkaroundApplied():
file_exists = exists(workaround_flag_file)
if file_exists:
sys.exit('The workaround is already applied!')
def checkFixApplied():
file_exists = exists(patch_flag_file)
if file_exists:
sys.exit('The hotfix patch is already applied!')
def apply():
print("Applying the workaround")
print("Modifying " + cfg_web_xml)
apply_workaround(cfg_web_xml, cfg_security_constraint)
print("Modifying " + saas_web_xml)
apply_workaround(saas_web_xml, oauth2_security_constraint)
print("Mitigating endusercatalog-ui-1.0-SNAPSHOT-classes.jar file")
shutil.copyfile(endusercatalog_classes_jar, endusercatalog_classes_jar + ".bk")
sp.run(["zip","-d",endusercatalog_classes_jar,"templates/customError.ftl"])
sp.call(['chmod', '644', endusercatalog_classes_jar])
sp.call(['chown', 'horizon:www', endusercatalog_classes_jar])
print("Restarting the horizon-workspace service")
sp.run(["service", "horizon-workspace", "restart"])
open(workaround_flag_file, 'w').close()
print("Done!")
checkWorkaroundApplied()
checkFixApplied()
print("Please make sure you take the necessary snapshots before you proceed.")
answer = input("Continue? [yes/no]")
if answer == "yes":
apply()
elif answer == "no":
quit()
else:
print("Invalid Input")
恢复解决方法的过程:
- 以 sshuser 身份登录,sudo 以 root 级别访问。
- 下载HW-154129-revertWorkaround.py脚本并将其传输到虚拟设备。VMware 建议使用 SCP 协议将文件传输到设备。也可以使用诸如 winscp 之类的工具将文件传输到设备。
- 使用“cd”命令导航到下载的文件路径。
- 使用以下命令运行 Python 脚本
python3 HW-154129-revertWorkaround.py
HW-154129-revertWorkaround.py源码:
# Copyright 2022 VMware, Inc. All rights reserved.
# Dated April 6th, 2022
import subprocess as sp
import xml.etree.ElementTree as ET
import os, sys
from os.path import exists
if not os.geteuid()==0:
sys.exit('This script must be run as root!')
cmd_output = sp.getoutput('vamicli version --appliance')
version=cmd_output.split()[2]
endusercatalog_classes_jar = '/opt/vmware/horizon/workspace/webapps/catalog-portal/WEB-INF/lib/endusercatalog-ui-1.0-SNAPSHOT-classes.jar'
cfg_web_xml='/opt/vmware/horizon/workspace/webapps/cfg/WEB-INF/web.xml'
saas_web_xml='/opt/vmware/horizon/workspace/webapps/SAAS/WEB-INF/web.xml'
workaround_flag_file='/usr/local/horizon/conf/flags/HW-154129-'+ version +'-workaround.applied'
def revert_workaround(filename, constraintName):
with open(filename, encoding='UTF-8') as f:
tree = ET.parse(f)
ET.register_namespace('', 'http://java.sun.com/xml/ns/javaee')
root = tree.getroot()
for child in root:
if "security-constraint" in child.tag:
if constraintName in child[0][0].text:
root.remove(child)
tree.write(filename)
def revert():
print("Reverting the workaround")
print("Modifying " + cfg_web_xml)
revert_workaround(cfg_web_xml, "blocks cfg urls")
print("Modifying " + saas_web_xml)
revert_workaround(saas_web_xml, "blocks generateActivationToken url")
print("Reverting endusercatalog-ui-1.0-SNAPSHOT-classes.jar file")
os.rename(endusercatalog_classes_jar + ".bk", endusercatalog_classes_jar)
sp.call(['chmod', '644', endusercatalog_classes_jar])
sp.call(['chown', 'horizon:www', endusercatalog_classes_jar])
print("Restarting the horizon-workspace service")
sp.run(["service", "horizon-workspace", "restart"])
os.remove(workaround_flag_file)
print("Done!")
def checkWorkaroundApplied():
file_exists = exists(workaround_flag_file)
if not file_exists:
sys.exit('The workaround is not applied!')
checkWorkaroundApplied()
print("Please make sure you take the necessary snapshots before you proceed.")
answer = input("Continue? [yes/no]")
if answer == "yes":
revert()
elif answer == "no":
quit()
else:
print("Invalid Input")
vRA 7.6 的解决方法说明
请使用HW-154129-applyWorkaround-vRA-76.py 和HW-154129-revertWorkaround-vRA-76.py脚本。下面是应用/恢复 vRA 7.6 解决方法的命令。
应用:/usr/lib/health-broker/python/bin/python3 HW-154129-applyWorkaround-vRA-76.py
恢复:/usr/lib/health-broker/python/bin/python3 HW-154129-revertWorkaround-vRA -76.py
解决方法部署验证:
解决方法部署后,执行以下步骤以确认解决方法已成功应用。
- 验证在端口 8443 ( https://{FQDN}:8443/cfg/ )上运行的 Workspace ONE 访问设备配置网页是否被阻止。
笔记:
- 如果将设备升级到更高版本,则需要在所有节点上重新应用相应的解决方法/修补程序
相关信息
相关网址
转载请注明出处及链接