漏洞修复失败原因排查

更新时间: 2023-11-20 10:15:39

在云安全中心控制台一键修复Linux软件漏洞或Windows系统漏洞时,如果出现修复失败,您需要根据提示信息,先解决导致修复失败的问题后再次修复漏洞。本文介绍在云安全中心控制台修复Linux软件漏洞和Windows系统漏洞失败的原因及解决方案。

查看漏洞修复失败原因

  1. 登录云安全中心控制台。在控制台左上角,选择需防护资产所在的区域:中国全球(不含中国)

  2. 在左侧导航栏,选择风险管理 > 漏洞管理

  3. 漏洞管理页面,单击修复中漏洞下的数字,在修复中漏洞面板查看修复中的漏洞列表。

    修复中漏洞列表展示所有状态为修复中修复成功待重启修复失败的漏洞。

  4. 单击修复失败的漏洞状态列的image图标,在原因详情对话框,查看漏洞修复失败原因,处理漏洞修复失败问题。

    您可以根据提示的错误码和错误详情,处理漏洞修复失败问题。关于漏洞修复失败原因和解决方案的更多信息,请参见漏洞修复失败原因及解决方案

    d471036df397d9c4c55dee52fe9cc430

漏洞修复失败原因及解决方案

重要
  • 下表中的漏洞修复失败原因和解决方案只适用于Linux软件漏洞和Windows系统漏洞。

  • 下表中部分错误详情只截取了实际内容的摘要部分,错误详情的全部信息以云安全中心控制台显示为准。

错误码(ErrorCode)

错误详情(ErrorMessage)

修复失败原因

解决方案

116

download file faild

补丁下载失败

Windows补丁下载失败,请稍后通过控制台重新执行漏洞修复操作。如果重试仍失败,请通过提交工单联系技术支持人员。

124

windows modules installer service disable

未开启Windows Modules Installer服务

您需要在服务管理器中开启Windows Modules Installer服务。

  1. 按Win + R键打开运行对话框。

  2. 在运行对话框,输入services.msc,并单击确定。

  3. 在服务列表中找到Windows Modules Installer服务。

  4. 右键单击Windows Modules Installer服务,然后启动该服务。

windows update service disable

未开启Windows Update服务

您需要在服务管理器中开启Windows Update服务。

  1. 按Win + R键打开运行对话框。

  2. 在运行对话框,输入services.msc,并单击确定。

  3. 在服务列表中找到Windows Update服务。

  4. 右键单击Windows Update服务,然后启动该服务。

125

exit code:0x00000005

安全软件拦截或者病毒感染

可能由于ECS中的安全软件拦截或者病毒感染导致进程启动失败,或者文件无法打开导致的修复失败,请排查并确保不存在安全软件拦截后,再次执行漏洞修复操作。

127

exit code:0x00000070, (OK)

磁盘空间不足

安装Windows补丁时出现ERROR_DISK_FULL错误,表示磁盘空间不足导致安装补丁失败。在此情况下,需要释放磁盘空间才能继续安装补丁。以下是一些释放磁盘空间的方法:

  • 删除不必要的文件和程序。首先,可以在计算机上查找并删除不再需要的文件和程序。可以使用Windows自带的磁盘清理工具或第三方工具来删除临时文件、垃圾文件、缓存文件和其他不必要的文件。

  • 移动文件到外部硬盘或云存储。将大型文件(如视频、音乐和照片)移动到外部硬盘或云存储中可以释放一些磁盘空间。

  • 压缩文件。在某些情况下,可以使用压缩工具将文件压缩为较小的文件,从而释放一些磁盘空间。

  • 将文件存档。如果文件不再需要,可以将其存档到外部存储设备中,以便将来可以恢复它们。

释放了足够的磁盘空间后,就可以继续安装Windows补丁。

130

exit code:0x00000008

内存不足

查看系统当前内存、CPU的使用情况,在内存、CPU等正常的情况下再进行修复。

132

exit code:0x80240017

  • 存在正在安装中的补丁

  • 存在已安装需重启生效的补丁

检查系统是否存在正在安装中的补丁,如果存在则等待安装结束后再次执行漏洞修复操作。如果不存在正在安装中的补丁,需要确认对业务无影响的情况下,重启服务器再次执行漏洞修复操作。

133

xxx.exe is running

安装软件被安全软件拦截

补丁安装被其他安全软件拦截。这种情况很有可能是ECS中的安全软件拦截导致的。请排查并确保不存在安全软件拦截后,再次执行漏洞修复操作。

134

exit code:0x00000476, (OK)

ERROR_TOO_MANY_LINKS

文件系统中存在过多的符号链接

通常情况下,这个错误是由于系统中存在过多的符号链接或硬链接所导致的。这个问题可能会影响到文件系统的正常工作,也可能会使得Windows无法安装新的补丁程序。以下是解决方案:

  • 清理硬盘:尝试清理硬盘,删除一些不必要的文件和程序,以释放空间。

  • 取消符号链接:检查系统中的符号链接和硬链接,如果过多,则应将其取消。

  • 执行磁盘检查:尝试执行磁盘检查和修复,以确保文件系统的正常工作。

  • 禁用Windows Defender:Windows Defender可能会干扰Windows补丁的安装,尝试禁用Windows Defender,然后再次尝试安装补丁。

202

timeout

补丁安装超时

Windows补丁安装超时,请再次执行漏洞修复操作。如果多次修复失败,请通过提交工单联系技术支持人员。

256

failure: repodata/repomd.xml from docker-ce-stable: [Errno 256] No more mirrors to try.

https://download.docker.com/linux/centos/2.1903/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found

下载源失效

根据错误详情信息可知下载源download.docker.com失效。执行以下操作:

  1. 通过命令行方式进入服务器的/etc/yum.repos.d/目录,并执行以下命令,查看失效源在哪个源文件中。

    说明

    您需要使用错误信息中的失效源名称替换以下命令中的源名称download.docker.com

    grep -r "download.docker.com"
  2. 编辑源文件,将enabled设置为0禁用对应源文件。

  3. 重新执行漏洞修复操作。

failure: repodata/repomd.xml from HDP-3.0-repo-1: [Errno 256] No more mirrors to try.

http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.0.0/repodata/repomd.xml: [Errno 14] HTTP Error 403 - Forbidden

无法访问下载源

根据报错信息可知服务器无法访问下载源public-repo-1.hortonworks.com。执行以下操作:

  1. 使用服务器命令行进入/etc/yum.repos.d/目录,并执行以下命令,查看无法访问的源在哪个源文件中。

    说明

    您需要使用错误信息中的源名称替换以下命令中的源名称public-repo-1.hortonworks.com

    grep -r "public-repo-1.hortonworks.com" 
  2. 编辑源文件,将enabled设置为0禁用对应源文件。

  3. 重新执行漏洞修复操作。

There are unfinished transactions remaining

历史安装命令未正常完成并退出

可能之前yum在安装软件时存在遗留问题导致本次安装失败。在服务器上执行以下命令,清理遗留问题后,再次执行漏洞修复操作。

yum-complete-transaction --cleanup-only

Error:rpmdb open failed

rpm数据库损坏

rpm数据库可能被其他进程打开或是数据库文件被损坏,可通过依次执行下述命令重建rpm数据库后,再次执行漏洞修复操作。

cd /var/lib/rpm  //进入rpm数据库所在目录;
rm -f __db.*  //清除原rpm数据库文件;
rpm --rebuilddb //重建rpm数据库;
yum clean all //清除所有yum的缓存。

Transaction Check Error

软件包冲突

  1. 查看错误详情信息中的yum执行信息,根据关键字conflicts with file确认存在冲突的软件包。

  2. 在确认删除存在冲突的软件包不会影响业务的情况下,执行以下操作移除冲突的包。

    yum remove [package_name]
  3. 重新执行漏洞修复操作。

CRITICAL:yum.cli:Config error: Error accessing file for config file:///etc/yum.conf

yum配置文件缺失

yum配置文件/etc/yum.conf可能不存在,可从其他操作系统类型相同的服务器复制yum配置文件后,再执行漏洞修复操作。

300

rtap running error

客户端脚本执行失败

Agent客户端运行修复程序失败,可能是因为被第三方安全软件阻止,这种情况很有可能是ECS中的安全软件拦截导致的。请排查并确保不存在安全软件拦截后,再次执行漏洞修复操作。如多次执行漏洞修复均失败,请通过提交工单联系技术支持人员。

309

execute rtap task fail

8005

/bin/rpm permit error

修复漏洞时使用的工具或脚本没有足够的权限来执行/bin/rpm命令

/bin/rpm权限设置过高导致可能存在提权问题,通常情况下可以将该文件(/bin/rpm)的权限设置为更安全的755或750,以确保只有具有必要权限的用户可以执行相关操作。

8008

not support this system xxx

当前系统不支持修复

出现此种情况,可能是因为在检出漏洞后,您手动更改了操作系统类型。服务器现有操作系统类型和当前漏洞检出的操作系统类型不匹配,您可在云安全中心控制台手动忽略该漏洞,或等待漏洞自动失效。具体操作,请参见查看和处理漏洞

8009

update process is running

存在正在运行中的修复进程

漏洞修复进程正在运行中,请稍后重试。

8010

Insufficient space in download directory /var/cache/yum/x86_64/7/aegisbase

磁盘空间不足

磁盘空间不足导致yum更新失败,请根据错误提示中的路径,清理磁盘空间后重新修复。

8012

dpkg was interrupted

dpkg(Debian Packager)被终止导致数据损坏,可能历史修复时候被强制退出导致

dpkg被终止导致数据损坏,可能是历史修复被强制退出导致有垃圾数据遗留,需要在服务器命令行手动执行以下命令进行重新设置。

dpkg --configure -a	

更多信息,请参见dpkg中断修复指南

8019

yum exception

yum执行异常

可能执行yum命令默认的Python环境与yum文件语法不匹配导致,可查看/usr/bin/yum目录下的文件内容,查看是否存在语法错误;并检查执行yum命令的Python环境设置是否准确。

8027

A has missing requires of B

存在包依赖

  1. 根据错误信息确定与修复漏洞相关并存在依赖的软件包。例如:

    1. 错误信息示例中的A是要升级的软件包。

    2. 错误信息示例中的B是依赖的软件包。

  2. 在服务器命令行执行以下命令手动安装软件。

    说明

    执行下述命令前,您需要使用要安装的软件包名称替换xxx。

    yum update xxx --disableexcludes=all --disablerepo="*" --enablerepo="aegisbase,aegisupdates,aegisextras" --obsoletes 
  3. 重新执行漏洞修复操作。

8032

run virtio fix process faild

ECS磁盘驱动漏洞修复程序启动失败

ECS磁盘驱动漏洞修复程序启动失败,这种情况很有可能是ECS中的安全软件拦截导致的。请排查并确保不存在安全软件拦截后,再次执行漏洞修复操作。

8033

yum plugins protectbase enable

插件ProtectBase已阻止软件包更新

yum插件ProtectBase阻止了本次更新,请在服务器中禁用ProtectBase插件后,再次执行漏洞修复操作。禁用方法如下:

  1. 打开ProtectBase配置文件/etc/yum/pluginconf.d/protectbase.conf

  2. enabled = 1改为enabled = 0

8037

[Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"

无法访问mirrors.cloud.aliyuncs.com源

  1. 排查服务器与mirrors.cloud.aliyuncs.com网络是否连通,是否设置安全组或防火墙拦截了与该域名的通信。

  2. 如果您的服务器可以连接公网,尝试在/etc/yum.repos.d/路径下将启用的源文件中的mirrors.cloud.aliyuncs.com替换为mirrors.aliyun.com

  3. 重新执行漏洞修复操作。

8040

miss kernel grub file

内核引导文件缺失

需要重新构建内核引导文件。如果服务器的操作系统是CentOS 7,可在服务器命令行中执行以下命令:

grub2-mkconfig -o /boot/grub2/grub.cfg

重新构建内核引导文件后,再执行漏洞修复操作。

8041

redhat not subscription

系统未注册

出现该提示说明,您的服务器未注册Red Hat账户,您需要在Red Hat官网上注册一个账户并购买订阅服务。前往Red Hat官网,注册RedHat账户。

重要

您需要为每个Red Hat系统购买一个单独的订阅服务。如果您有大量的系统需要注册和管理,您可以考虑使用Red Hat Satellite服务器集中管理这些系统。更多信息,请参见Red Hat Satellite简介

8080

sh xxx killed

yum进程因为OOM(Out of Memory)问题被终止

当前系统内存不足导致漏洞修复失败,请释放部分内存后再次尝试修复漏洞。

8081

blacklist process xxx is running

黑名单进程(即锁定内核配置文件的进程)正在运行

正在运行的黑名单进程会锁定内核配置文件,可能会导致修复漏洞后内核版本不会更新,请在关闭该进程后再次尝试修复漏洞。

8082

redhat source has expired

RedHat系统软件源已过期或未配置

RedHat系统软件源已过期或未配置,将导致修复失败,建议修改软件源。前往阿里巴巴开源镜像站可获取软件源。

8083

redhat has no available source

8084

Some index files failed to download

无法访问下载源导致无法更新软件包信息

排查网络是否设置了安全组或防火墙拦截了对下载源的访问。

8085

alinux source not found

alinux系统未正确配置alinux的软件源

重新配置alinux官方源。往阿里巴巴开源镜像站可获取alinux官方源。

8090

xxx newest available version versionA less than versionB to be updated

example:

ppp newest available version 2.4.5-34.el7_7 less than 2.4.5-35.el7_7 to be updated

利用当前源更新xxx包可用的最新版本小于修复要求的版本

利用当前源无法升级到不存在漏洞的版本。检查当前源设置是否异常及当前源是否为最新的源。

8091

qboot kernel

使用qemu引导的内核无法更新内核补丁

使用qemu引导的内核无法更新内核补丁,请在云服务器ECS产品下提交工单解决该问题。

8092

package not available on the current system

修复包在当前系统不可用

修复漏洞的软件包或补丁在当前系统不可用,可忽略对应漏洞。

9002

timeout

修复超时

修复超时可能由于网络抖动或服务器环境影响导致,请在云安全中心控制台重新执行修复漏洞操作。如果漏洞修复仍然失败,请通过提交工单联系技术支持人员。

9003

xxx is already the newest version

命令执行成功已升级到最新版本,但漏洞仍未修复

已经升级到了当前源支持的最高版本,但漏洞仍然存在。如果修改过源,请设置成阿里云源(mirrors.cloud.aliyuncs.commirrors.aliyun.com)后,重新执行漏洞修复操作。如果漏洞修复仍失败,请通过提交工单联系技术支持人员。

Invalid configuration value: failovermethod =priority in /etc/yum.repos.d/CentOS-Linux-epel.repo

yum配置项错误导致

根据错误信息,并检查当前系统下载源配置,将配置项错误的源文件/etc/yum.repos.d/CentOS-Linux-epel.repo移到其他目录备份,再重新执行漏洞修复操作。

Finished Dependency Resolution

yum完成依赖分析后直接退出,可能存在软件包冲突

根据错误提示信息中的yum执行日志,可分析得出yum完成依赖分析后就直接退出了,没有执行安装命令。

如果您是在升级MariaDB,可能是由于系统安装过MySQL并存在端口冲突导致。您可以参考以下步骤操作:

  1. 在服务器命令行执行以下命令查看端口占用情况,确认3306端口是否被MySQL占用。

    netstat -anltp
  2. 确认不影响业务的情况下,执行以下命令停止MySQL。

    systemctl stop mysqld
  3. 执行以下命令查看已安装MySQL的软件包。

    yum list mysql*
  4. 执行以下命令移除MySQL相关软件包。

    yum remove [package_name]
  5. 执行以下命令重新安装MariaDB。

    yum install -y mariadb-server

9007

ack timeout

安装命令执行超时

软件包升级执行超时,可能由网络抖动或服务器当前环境问题导致,请在云安全中心控制台重新执行漏洞修复操作。如多次执行漏洞修复均失败,请通过提交工单联系技术支持人员。

9008

rpm collect timeout

软件包采集超时

软件包采集超时,可能由网络抖动或服务器当前环境问题导致,请在云安全中心控制台重新执行漏洞修复操作,如多次执行漏洞修复均失败,请通过提交工单联系技术支持人员。

60001

start vulfix:[Error 2] The system cannot find the file specified

安全软件拦截导致修复进程启动失败

可能由于安全软件拦截导致修复进程启动失败,这种情况很有可能是ECS中的安全软件拦截导致的。请排查并确保不存在安全软件拦截后,再次执行漏洞修复操作。

相关文档

阿里云首页 云安全中心 相关技术圈