VMware Workspace ONE Access远程代码执行漏洞

VMware Workspace ONE Access远程代码执行漏洞

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) 向我们报告这些问题。

VMware Workspace ONE Access远程代码执行漏洞
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严重性修复版本解决方法附加文件
Access21.08.0.1, 21.08.0.0LinuxCVE-2022-229549.8危急 KB88099KB88098常问问题
Access21.08.0.1, 21.08.0.0LinuxCVE-2022-22955、CVE-2022-229569.8危急 KB88099KB88098常问问题
Access21.08.0.1, 21.08.0.0LinuxCVE-2022-22957、CVE-2022-229589.1危急 KB88099KB88098常问问题
Access21.08.0.1, 21.08.0.0LinuxCVE-2022-229598.8重要的 KB88099KB88098常问问题
Access21.08.0.1, 21.08.0.0LinuxCVE-2022-229607.8重要的 KB88099KB88098常问问题
Access21.08.0.1, 21.08.0.0LinuxCVE-2022-229615.3缓和 KB88099没有常问问题

响应矩阵 – 访问 20.10.x:

产品版本运行环境CVE 标识符CVSSv3严重性修复版本解决方法附加文件
Access20.10.0.1, 20.10.0.0LinuxCVE-2022-229549.8危急 KB88099KB88098常问问题
Access20.10.0.1, 20.10.0.0LinuxCVE-2022-22955、CVE-2022-229569.8危急 KB88099KB88098常问问题
Access20.10.0.1, 20.10.0.0LinuxCVE-2022-22957、CVE-2022-229589.1危急 KB88099KB88098常问问题
Access20.10.0.1, 20.10.0.0LinuxCVE-2022-229598.8重要的 KB88099KB88098常问问题
Access20.10.0.1, 20.10.0.0LinuxCVE-2022-229607.8重要的 KB88099KB88098常问问题
Access20.10.0.1, 20.10.0.0LinuxCVE-2022-229615.3缓和 KB88099没有常问问题

响应矩阵 – Identity Manager 3.3.x:

产品版本运行环境CVE 标识符CVSSv3严重性修复版本解决方法附加文件
vIDM3.3.6, 3.3.5, 3.3.4, 3.3.3LinuxCVE-2022-229549.8危急 KB88099KB88098常问问题
vIDM3.3.6, 3.3.5, 3.3.4, 3.3.3LinuxCVE-2022-22955、CVE-2022-22956不适用不适用不受影响不适用不适用
vIDM3.3.6, 3.3.5, 3.3.4, 3.3.3LinuxCVE-2022-22957、CVE-2022-229589.1危急 KB88099KB88098常问问题
vIDM3.3.6, 3.3.5, 3.3.4, 3.3.3LinuxCVE-2022-229598.8重要的 KB88099KB88098常问问题
vIDM3.3.6, 3.3.5, 3.3.4, 3.3.3LinuxCVE-2022-229607.8重要的 KB88099KB88098常问问题
vIDM3.3.6, 3.3.5, 3.3.4, 3.3.3LinuxCVE-2022-229615.3缓和 KB88099没有常问问题

响应矩阵 – vRealize Automation (vIDM):

产品版本运行环境CVE 标识符CVSSv3严重性修复版本解决方法附加文件
vRealize Automation [1]8.xLinuxCVE-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.6LinuxCVE-2022-22954不适用不适用不受影响不适用不适用
vRealize Automation (vIDM)7.6LinuxCVE-2022-22955、CVE-2022-22956不适用不适用不受影响不适用不适用
vRealize Automation (vIDM) [2]7.6LinuxCVE-2022-22957、CVE-2022-229589.1危急 KB88099KB88098常问问题
vRealize Automation (vIDM) [2]7.6LinuxCVE-2022-229598.8重要的 KB88099KB88098常问问题
vRealize Automation (vIDM) [2]7.6LinuxCVE-2022-229607.8重要的 KB88099KB88098常问问题
vRealize Automation (vIDM)7.6LinuxCVE-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-229619.8, 9.1, 9.1, 8.8, 7.8, 5.3危急 KB88099KB88098常问问题
VMware Cloud Foundation (vRA)3.x任何CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-229609.1, 9.1, 8.8, 7.8危急 KB88099KB88098常问问题
vRealize Suite Lifecycle Manager (vIDM)8.x任何CVE-2022-22954、CVE-2022-22957、CVE-2022-22958、CVE-2022-22959、CVE-2022-22960、CVE-2022-229619.8, 9.1, 9.1, 8.8, 7.8, 5.3危急 KB88099KB88098常问问题
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]  

[email protected]  

[email protected] 

电子邮件:[email protected]

PGP 密钥位于:

https://kb.vmware.com/kb/1055

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 的解决方法说明部分
  • 如果您正在运行集群部署,请在集群的所有其他节点上重复以下步骤。

应用解决方法的过程: 

  1. 以 sshuser 身份登录,sudo 以 root 级别访问。 
  2. 下载HW-154129-applyWorkaround.py脚本并将其传输到虚拟设备。VMware 建议使用 SCP 协议将文件传输到设备。也可以使用诸如 winscp 之类的工具将文件传输到设备。 
  3. 使用“cd”命令导航到下载的文件路径。 
  4. 使用以下命令运行 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")

恢复解决方法的过程: 

  1. 以 sshuser 身份登录,sudo 以 root 级别访问。 
  2. 下载HW-154129-revertWorkaround.py脚本并将其传输到虚拟设备。VMware 建议使用 SCP 协议将文件传输到设备。也可以使用诸如 winscp 之类的工具将文件传输到设备。 
  3. 使用“cd”命令导航到下载的文件路径。 
  4. 使用以下命令运行 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 访问设备配置网页是否被阻止。 

笔记:

  • 如果将设备升级到更高版本,则需要在所有节点上重新应用相应的解决方法/修补程序

 相关信息

相关网址

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注