首页 > 系统相关 >关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​

时间:2023-09-19 21:06:16浏览次数:75  
标签:OpenSLP ESXi 7.0 升级 6.5 版本 VMware

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明

前段时间IT圈被一个“ESXiArgs 勒索软件攻击VMware ESXi 服务器”的相关新闻刷屏。互联网上的文章称,这些攻击活动似乎利用 CVE-2021-21974 漏洞,由 OpenSLP 服务中的堆溢出问题引起,未经身份验证的威胁参与者可以利用该问题进行低复杂度攻击。CVE-2021-21974 影响以下系统:

ESXi70U1c-17325551之前的ESXi 7.x的版本。

ESXi670-202102401-SG 之前的 ESXi 版本 6.7.x。

ESXi650-202102101-SG 之前的 ESXi 版本 6.5.x。

VMware在 2021 年 2 月 23 发布了补丁程序以解决该问题(链接为https://www.vmware.com/security/advisories/VMSA-2021-0002.html)。表1列出的版本及以后的版本不受此漏洞影响。

表1 不受CVE-2021-21974影响的最低ESXi版本

版本名称

实体包ID

内部版本号

ESXi70U1c-17325551

ESXi70U1c-17325551

17325551

ESXi670-202102001

ESXi670-202102401-SG

17499825

ESXi650-202102001

ESXi650-202102101-SG

17477841




截止到本文写作时,VMware ESXi最新版本如表2所列。

表2 部分VMware ESXi最初补丁版本

版本名称

内部版本号

发布日期

VMware-ESXi-8.0a-20842819-depot

20842819

2022-12-08

VMware-ESXi-7.0U3j-21053776-depot

21053776

2023-01-31

ESXi670-202210001

20497097

2022-10-06

ESXi650-202210001

20502893

2022-10-06







VMware 尚未找到证据表明未知漏洞(0-day)被用于传播最近这些攻击中使用的勒索软件。大多数报告指出,一般支持终止 (EOGS) 和/或严重过时的产品正成为已知漏洞的目标,这些漏洞之前已在 VMware 安全公告 (VMSA) 中得到解决和披露。

考虑到这一点,VMware建议客户升级到vSphere 组件的最新可用受支持版本,以解决当前已知的漏洞。此外,VMware 建议在 ESXi 中禁用 OpenSLP 服务。ESXi 7.0 U2c 和 ESXi 8.0 GA默认禁用该服务。

1 关于ESXi补丁包介绍

使用浏览器访问https://my.vmware.com,输入注册账户登录后,在“产品和账户→产品补丁程序”(如图1所示)访问“产品补丁程序”网站。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_升级


图1 产品补丁程序

在“产品补丁程序网站”的“您为以下项选择了补丁程序”下拉列表中选择“ESXi (Embedded and Installable)”,在右侧选择版本(8.0、7.0、6.7.0、6.5.0、6.0.0等),本示例选择6.7.0,列出VMware已经发布的ESXi 6.7.0的所有补丁。如图2所示。单击右侧的“立即下载”链接,可以下载对应的ESXi的补丁程序,当前示例中,ESXi 6.7的补丁程序文件名称为ESXi670-202210001.zip。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_OpenSLP_02


图2 产品补丁程序

ESXi的zip升级补丁包,包含常规版本实体包仅安全修复版本实体包。在图2“公告”中列出由-SG结尾的ID标识的为仅安全修复版本实体包,由-BG结尾的实体包ID标识的为常规版本实体包。

仅安全修复版本实体包只适用于新的安全修复。不包括任何新的缺陷修复,但包括早期修补程序版本和更新版本中的缺陷修复。

VMware 修补程序版本和更新版本包含“常规映像配置文件”和“重要映像配置文件”。例如对于当前示例的ESXi670-202210001.zip,包括4个映像配置文件,名称如下:

ESXi-6.7.0-20221004001-standard

ESXi-6.7.0-20221004001-no-tools

ESXi-6.7.0-20221001001s-standard

ESXi-6.7.0-20221001001s-no-tools

这4个配置文件中,前缀相同的配置文件修复了相同的问题,其中-standard结尾的ID标识的配置文件包括了新版本的VMware Tools安装包,而-no-tools结尾的ID标识的配置文件没有包含VMware Tools安装包。在数字后面有s的是重要映像配置文件,用于安全修复更新。不带s的为常规映像配置文件,只用于缺陷修复。

如果需要安装所有新的安全修复和缺陷修复,则必须应用此版本中的所有实体包。在某些情况下,常规版本实体包将取代仅安全修复版本实体包。这没有问题,因为常规版本实体包同时包含新的安全修复和缺陷修复。

可以使用 esxcli software profile update 或 esxcli software profile install 命令升级或更新 ESXi 主机。其中update 命令使用指定配置文件中的相应 VIB 来更新现有的 VIB,但不影响目标服务器上安装的其他 VIB。 install 命令安装库映像配置文件中显示的 VIB,并且移除目标服务器上安装的任何其他 VIB。这是两者的区别。在大多数的情况下使用update参数。

2 检查当前的ESXi版本

如果ESXi受vCenter Server管理,登录到vCenter Server管理界面,在左侧导航窗格中单击ESXi主机,在右侧“摘要”选项卡中可以查看当前主机安装的ESXi版本,如图3所示,当前示例中主机安装了ESXi 8.0,内部版本号为20513097。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_升级_03


图3 查看ESXi版本号

如果ESXi没有受vCenter Server管理,登录到ESXi主机,在导航器中单击“主机”,在右侧查看ESXi的版本,如图4所示。如果没有内部版本号,可以在“帮助→关于”中查看ESXi内部版本号。当前示例中ESXi的内容版本号为15843807。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_ESXi_04


图4 查看ESXi版本号

3 权宜措施

VMware建议将受影响ESXi升级到最新版本。如果服务器暂时无法升级,可以使用以下的临时措施。注意,此解决办法仅适用于 ESXi。请勿将此权宜措施应用于其他 VMware 产品。

使用该权宜措施,使用 SLP 通过端口427查找 CIM 服务器的 CIM 客户端将无法找到该服务。

要实施权宜措施,请执行以下步骤:

(1)使用以下命令停止 ESXi 主机上的 SLP 服务:

/etc/init.d/slpd stop

注意:仅当 SLP 服务未在使用中的时候才能将其停止。使用以下命令可查看服务位置协议守护进程的运行状况:

esxcli system slp stats get

(2)运行以下命令以禁用 SLP 服务:

esxcli network firewall ruleset set -r CIMSLP -e 0

(3)要使此更改在重新引导后仍然有效,请执行以下操作:

chkconfig slpd off

(4)检查重新引导后此更改是否仍然有效:

chkconfig --list | grep slpd

该命令会显示slpd off,如图5所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_OpenSLP_05


图5 禁用slp服务

要移除上述权宜措施,请执行以下步骤:

(1)运行以下命令以启用 SLP 服务的规则集:

esxcli network firewall ruleset set -r CIMSLP -e 1

(2)运行以下命令以更改 slpd 服务的当前启动信息:

chkconfig slpd on

(3)运行以下命令以检查运行上述步骤(步骤 2)后更改是否有效:

chkconfig --list | grep slpd

执行该命令后会显示slpd on。

(4)运行以下命令以启动 SLP 服务:

/etc/init.d/slpd start

如图6所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_升级_06


图6 启用slp服务

4 升级ESXi补丁以解决

下面分别介绍ESXi 7.0、6.7和6.5的升级。3个不同版本升级类似。

4.1 启动ssh服务

如果使用命令行升级ESXi,可以使用xshell以ssh方式登录到ESXi。默认情况下,ESXi主机SSH服务是禁用的,需要管理员手动打开。

(1)当ESXi受vCenter Server管理时,在vCenter Server中将ESXi主机置于维护模式时,该ESXi主机上的虚拟机会迁移到集群中其他ESXi主机上。如果ESXi是单机使用,没有加入到集群中,在将ESXi置于维护模式时,需要将该主机上所有正在运行的虚拟机暂时关机。等升级完成后,退出维护模式后,再打开虚拟机的电源。

(2)ESXi的ssh服务默认没有开启,如果需要开启ssh服务,使用浏览器登录到ESXi主机,在“操作”菜单中选择“服务→启用Secure Shell(SSH)”(如图7所示)。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_ESXi_07


图7 启动SSH服务

(3)如果ESXi受vCenter Server管理,在vCenter Server导航中选中ESXi主机,在右侧“配置”选项卡的“系统→服务”中找到SSH,单击“启动”链接,启动SSH服务,如图8所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_ESXi_08


图8 启动SSH服务

(4)当主机升级(管理配置)完成后,为了安全原因,应停止SSH服务。


4.2 ESXi 7.0升级

要为ESXi安装相应版本的补丁步骤如下。在本节的示例中,将把图2中ESXi 7.0-15843807版本,升级到ESXi 7.0-20497097。

(1)从VMware产品补丁程序(https://customerconnect.vmware.com/cn/patch),下载当前ESXi 7.0版本的补丁程序,文件名称为VMware-ESXi-7.0U3j-21053776-depot.zip,大小为361MB。

(2)将下载的VMware-ESXi-7.0U3j-21053776-depot.zip文件上传到ESXi主机本地存储根目录。在本节中,ESXi本地存储的名称为datastore1。

(3)使用ssh登录到ESXi主机,执行vmware -vl查看当前ESXi版本。列出上传的ESXi安装包中的配置文件名,然后将主机置于维护模式,相关命令和显示如图9所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_ESXi_09


图9

【说明】大多数情况下,ESXi安装包中会包括2个配置文件名,这2个配置文件区别是一个包含了新版本的VMware Tools(后缀名为-standard),另一个不带VMware Tools(后缀名为-no-tools)。管理员可以根据需要进行安装。

从图9可以看到,当前ESXi版本号为VMware ESXi 7.0.0 build-15843807,安装包VMware-ESXi-7.0U3j-21053776-depot.zip中的配置文件名称为ESXi-7.0U3j-21053776-standard和ESXi-7.0U3j-21053776-no-tools。选择ESXi-7.0U3j-21053776-standard用于升级,命令如下。

esxcli software profile update -d="/vmfs/volumes/datastore1/VMware-ESXi-7.0U3j-21053776-depot.zip" -p ESXi-7.0U3j-21053776-standard

升级完成后,将显示如下的信息:

Update Result

Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.

Reboot Required: true

同时还会显示安装了VIB包信息。

(4)执行reboot重启ESXi。再次进入系统后,使用ssh登录到ESXi主机,执行esxcli system maintenanceMode set --enable false退出维护模式,执行vmware -vl查看升级后的版本。如图10所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_升级_10


图10

4.3 ESXi 6.7升级

如果有的zip升级包有常规映像配置文件和重要映像配置文件,需要一一安装。在当前的案例中,要升级的ESXi的版本号为6.7.0-8169922。

(1)将ESXi 6.7的最新升级包ESXi670-202210001.zip上传到ESXi主机datastore1的根目录下。执行如下命令。

esxcli software sources profile list -d="/vmfs/volumes/datastore1/ESXi670-202210001.zip"

如图11所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_OpenSLP_11


图11 列出配置文件

(2)升级包中包括常规映像配置文件和重要映像配置文件,执行以下命令一一安装。

esxcli software profile update -d="/vmfs/volumes/datastore1/ESXi670-202210001.zip" -p ESXi-6.7.0-20221004001-standard

esxcli software profile update -d="/vmfs/volumes/datastore1/ESXi670-202210001.zip" -p ESXi-6.7.0-20221001001s-standard

(3)升级完成后重新启动。再次进入系统后,可以看到ESXi的版本号为6.7.0 Update 3 (Build 20497097),如图12所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_ESXi_12


图12 升级完成

4.3 ESXi 6.5升级出错原因和解决办法

对于ESXi 6.5的升级,可以直接安装升级文件,命令格式如下。

esxcli software vib update --depot=/path_to_vib_ZIP/ZIP_file_name.zip

ESXi 6.5 的升级方式与ESXi 6.7、7.0相同。但是,在通过 esxcli 将 ESXi 6.5.U2 或更早版本升级到 ESXi 6.5 U3或ESXi 7.0 及更高版本时,会看到以下错误:

Could not find a trusted signer.

例如,执行如下命令升级ESXi 6.5.0 build-5969303到6.5 U3的版本时出现如下错误。

esxcli software vib install -d="/vmfs/volumes/datastore1/ESXi650-202210001.zip"

[InstallationError]

('VMware_bootbank_vsanhealth_6.5.0-3.195.20330361', 'Could not find a trusted signer.')

vibs = VMware_bootbank_vsanhealth_6.5.0-3.195.20330361

如图13所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_升级_13


图13 升级失败

对 ESXi 6.5.U2 或更早版本使用基于 VUM 的方式升级到 ESXi 7.0 及更高版本,会看到以下错误:

Cannot deploy host upgrade agent.

出现这种升级错误的版本如下:

起始版本:6.0 GA(内部版本:2494585)至 6.0 ESXi600-201807001 之前(内部版本:9239799)

或6.5 GA(内部版本:4564106)至 6.5 U2 之前(内部版本:8294253)

升级至:ESXi 6.5或ESXi 6.7

出现这种错误的原因是,VMware 在 2018 年 ESXi 引入了新证书,用于信任存储的 VIB 签名,自此开始对旧证书进行过渡(该证书在 2019 年 12 月 31 日到期)。运行在此过渡期前发布的版本的 ESXi 主机仅接受 VIB 签名验证的旧证书。由于此过渡期现已完成,新版本的 VIB 签名在运行过渡期前发布的 ESXi 版本的主机上不受信任,将会发生升级或安装失败。

在为此到期事件进行准备时,VMware建议所有客户将现有的 ESXi 主机至少升级到 2018 年 3 月之后发布的、在信任存储中具有新签名证书的内部版本(如下所示)。这样做可防止由于签名证书不受信任而导致未来的安装和升级失败。

  • 6.0 ESXi600-201807001 (内部版本:9239799)或更高版本
  • 6.5 U2 (内部版本:8294253)或更高版本
  • 6.7 GA (内部版本:8169922)或更高版本。

针对本案例,可以先将ESXi 6.5.0-5969303升级到6.5 U2,重启之后,再升级到最新版本。

(1)上传ESXi 6.5 U2升级补丁到ESXi本地存储datastore1,本示例中升级文件名称为update-from-esxi6.5-6.5_update02.zip,执行如下命令升级(如图14所示)。

esxcli software vib install -d="/vmfs/volumes/datastore1/update-from-esxi6.5-6.5_update02.zip"

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_OpenSLP_14


图14 升级到ESXi 6.5 U2

(2)升级完成后重启服务器,再次进入系统后,将ESXi升级到最新版本。

查看升级后的版本为,ESXi 6.5.0 Update 2 (Build 8294253),执行如下命令升级到最新版本。

esxcli software vib install -d="/vmfs/volumes/datastore1/ESXi650-202210001.zip"

如图15所示。升级完成后重新启动。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_升级_15


图15 升级到最新版本

(3)升级完成后查看ESXi的版本,当前为ESXi 6.5.0-20502893,如图16所示。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_ESXi_16


图16 升级到6.5 U3

【说明】本示例使用了install参数,也可以使用update参数。命令如下。

esxcli software vib update -d="/vmfs/volumes/datastore1/update-from-esxi6.5-6.5_update02.zip"

esxcli software vib update -d="/vmfs/volumes/datastore1/ESXi650-202210001.zip"

使用ESXi的zip升级包,也支持跨版本的升级,但要符合ESXi的升级路径。通常情况下,ESXi最多支持跨2个版本升级。例如可以从ESXi 6.5直接升级到7.0,支持将ESXi 6.7直接升级到8.0,但不支持将ESXi 6.5直接升级到8.0。要将ESXi 6.5升级到8.0,需要先升级到6.7或7.0,再升级到8.0。

如图17所示,这是从ESXi 6.5 U2升级到7.0 U3的截图。

关于“VMware ESXi OpenSLP堆溢出漏洞”的修复说明​_升级_17


图17 从ESXi 6.5 U2升级到7.0

【说明】要升级到ESXi 7.0或8.0,ESXi 7.0和8.0需要至少32GB的永久存储,ESXi主机至少要有8GB的物理内存。

这篇文章发表在《网络安全和信息化》2023年第5期,第151~153页。发表时有删减。

标签:OpenSLP,ESXi,7.0,升级,6.5,版本,VMware
From: https://blog.51cto.com/wangchunhai/7528395

相关文章

  • vmware下安装fedora
    1、首先安装好vmware(这个网上已经有很多资料,在此不再赘述)2、下载fedora镜像(这里fedora15为例),附上几个下载地址(可以用迅雷来下载)http://download.fedoraproject.org/pub/fedora/linux/releases/15/Fedora/i386/iso/Fedora-15-i386-DVD.isox86_64:http://download......
  • vmware虚拟机中的centos系统,桥接没有ip
    ipa#查看ip2:ens33:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPgroupdefaultqlen1000link/ether00:0c:29:d7:7e:d4brdff:ff:ff:ff:ff:ffinet6fe80::20c:29ff:fed7:7ed4/64scopelinkvalid_lftforeverpref......
  • vmware版本发行发布时间
    发行版本官方说明https://docs.vmware.com/cn/VMware-Workstation-Pro/17.0.2/rn/vmware-workstation-1702-pro-release-notes/index.html一、VMwareWorkstation17Pro发行说明版本时间内部版本17.0.22023年4月25日2158141117.0.12023年2月2日2......
  • VMware安装CentOS7服务器系统
    摘要本教程将简要介绍如何在VMware虚拟机中安装CentOS7服务器系统,并配置IP和端口,供宿主机访问。下载镜像以下是镜像下载地址:https://repo.huaweicloud.com/centos/7.9.2009/isos/x86_64/因为要做服务器使用,所以推荐下CentOS-7-x86_64-Minimal-2009.iso版本。安装系......
  • 虚拟机VMware12安装激活(超详细教程)适用于Win7版本
    1、下载VMware-workstation链接:https://pan.baidu.com/s/1BTHgStcKX38Ysx8MDqJEXg?pwd=h5hu (里面含激活教程和许可证秘钥)2、解压后执行VMware-workstation3、进入安装界面,点击【下一步】4、选择“增强型键盘驱动程序”, 点击【下一步】 5、点击【下一步】 6、继续......
  • 如果你学习VMware vSphere虚拟化很久感觉还没入门,那么请看我的这门视频课程《基于共享
    LanderZhang|企业IT运维&项目实施服务&-企业IT运维实战视频课程开发51CTO学堂讲师,超12W学员,44门课程更新时间:2023/09/15闲话不多说,如果你学习VMwarevSphere虚拟化很久感觉还没入门,那么请看我的这门视频课程《基于共享存储部署VMwarevSphere企业虚拟化实战环境》,相信你在之前学习......
  • ESXi esxcli 命令行创建虚拟交换机 创建虚拟网卡 配置上行链路
    ESXi  esxcli命令行创建虚拟交换机 创建虚拟网卡 配置上行链路参考整理自(    https://kb.vmware.com/s/article/1008127?lang=zh_CN   )通过ESXi/ESX中的命令行配置vSwitch或vNetworkDistributedSwitch(1008127)(vmware.com)1、创建1个虚拟交换机......
  • 使用VMware 16 安装银河麒麟V10 --九五小庞
    1.下载银河麒麟系统V10服务版镜像包:Kylin-Server-10-SP1-Release-Build04-20200711-x86_64.iso百度云盘链接:https://pan.baidu.com/s/1z0GCEadvefUA8R988qDP5Q提取码:1l0g2.运行VMwareWorkstation,创建新的虚拟机: 3.选中“典型”,下一步: 4.安装程序光盘映像文件(浏览——......
  • VMware Ubuntu18.04找不到网卡ens33问题解决
     查询网卡状态[root@localhost~]# nmcli devicestatusDEVICE   TYPE     STATE      CONNECTIONens33    ethernet unmanaged  --lo        loopback unmanaged  --上面状态提示未接管 开启网络[root@localhost~]#nmcli......
  • VMware中的CentOS7虚拟机固定ip地址
    1.虚拟机网络连接模式采用NAT模式2.开机后修改ifcfg-ens33文件cd/etc/sysconfig/network-scripts#有的机器不叫ens33,数字可能不同vimifcfg-ens33需要修改BOOTPROTO的值为static,并且添加IPADDR,GATEWAY,DNS1。(因为子网掩码默认是255.255.255.0所以可以不用添加NETMASK=25......