执行CVE-2024-1086内核漏洞升级包后重启会出现黑屏怎么办


指掌易
指掌易 2024-10-13 18:48:16 721
分类专栏: 问题

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=54311
赞同 0
评论 2 条
  • AI机器人 2024-10-13 19:00:44

    执行CVE-2024-1086内核漏洞升级包后重启出现黑屏的问题,可能是由于多种原因导致的,包括但不限于升级包不完整、系统兼容性问题、驱动不兼容或配置错误等。针对这种情况,以下是一些可能的解决步骤:

    ### 1. 检查升级包和安装过程

    确认升级包来源:确保下载的CVE-2024-1086内核升级包来自官方或可信赖的源,以避免因升级包本身问题导致的黑屏。
    验证升级包完整性:使用如MD5、SHA-1等哈希算法验证升级包的完整性,确保在下载和传输过程中没有被篡改。
    查看安装日志:检查升级过程中的日志文件,查找可能的错误或警告信息,这些信息可能有助于诊断问题。

    ### 2. 尝试恢复系统

    使用旧内核启动:如果系统支持多内核启动,尝试使用旧版本的内核启动系统,这可以临时绕过新内核可能存在的问题。
    回滚升级:如果可能,将系统回滚到升级前的状态,以排除新内核引起的问题。

    ### 3. 检查硬件和驱动

    检查硬件兼容性:确认系统硬件与新内核的兼容性,特别是显卡和其他重要硬件的驱动是否支持新内核。
    更新或回退驱动:如果怀疑是驱动问题导致的黑屏,尝试更新或回退相关驱动到与新内核兼容的版本。

    ### 4. 寻求帮助

    查看官方文档和社区:访问Linux发行版的官方文档或社区论坛,查找是否有其他用户遇到类似问题以及解决方案。
    联系技术支持:如果问题依然无法解决,考虑联系Linux发行版的技术支持或硬件制造商的技术支持。

    ### 5. 预防措施

    备份重要数据:在进行系统升级前,务必备份重要数据,以防万一出现不可预见的问题导致数据丢失。
    逐步测试:如果可能,在测试环境中先进行内核升级测试,确认无误后再在生产环境中执行。

    ### 6. 注意事项

    避免在关键时刻升级:尽量在系统负载较低、没有紧急任务的情况下进行内核升级,以减少潜在的风险。
    * 关注安全更新:定期关注Linux发行版的安全更新,及时修复已知漏洞,提高系统安全性。

    总之,执行CVE-2024-1086内核漏洞升级包后重启出现黑屏是一个需要仔细排查和解决的问题。通过上述步骤,可以逐步缩小问题范围,找到并解决问题。

    赞同 0 反对 0
    回复

  • 哆啦漫漫喵 2024-10-14 10:49:34

    方法1:在线升级Linux内核版本

    ####以下是在centos7.9环境进行测试:

    1、更新yum源,具体版本可以去https://elrepo.org/linux/kernel/el7/x86_64/RPMS/ 这里找
    yum -y update
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm  

    2、使用最新的内核

    查询kernet版本 
    yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
    yum --enablerepo=elrepo-kernel install kernel-ml -y

    --enablerepo 选项开启 CentOS 系统上的指定仓库。默认开启的是 elrepo,这里用 elrepo-kernel 替换

    3、设置 grub2 重启生效
     
    awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

    0 : CentOS Linux (5.10.7-1.el7.elrepo.x86_64) 7 (Core)
    1 : CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core)
    2 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    3 : CentOS Linux (0-rescue-df90baaeef85440fac1251df1c0e0371) 7 (Core)

    grub2-set-default 0
    vi /etc/default/grub
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
    GRUB_DEFAULT=0 #改为0
    GRUB_DISABLE_SUBMENU=true
    GRUB_TERMINAL_OUTPUT="console"
    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rhgb quiet"
    GRUB_DISABLE_RECOVERY="true"

    5、生成grub 配置文件
    grub2-mkconfig -o /boot/grub2/grub.cfg

    6、重启reboot

    7、验证
    # uname -r
    5.10.7-1.el7.elrepo.x86_64

    # rpm -qa | grep kernel
    kernel-3.10.0-693.el7.x86_64
    kernel-ml-5.10.7-1.el7.elrepo.x86_64
    kernel-tools-libs-3.10.0-1160.11.1.el7.x86_64
    kernel-3.10.0-1160.11.1.el7.x86_64
    kernel-headers-3.10.0-1160.11.1.el7.x86_64
    kernel-tools-3.10.0-1160.11.1.el7.x86_64

    8、删除多余的内核

    yum remove kernel-3.10.0-514.el7.x86_64 \
    kernel-tools-libs-3.10.0-862.11.6.el7.x86_64 \
    kernel-tools-3.10.0-862.11.6.el7.x86_64 \
    kernel-3.10.0-862.11.6.el7.x86_64

    方法二:阻止加载受影响的 netfilter (nf_tables) 内核模块

    1、查询是否被加载:lsmod | grep nf_tables

    2、修改 /etc/modprobe.d/blacklist.conf或在/etc/modprobe.d/目录下创建<模块名>.conf文件

    我这里创建了一个名为nf_tables-blacklist.conf
    vi /etc/modprobe.d/nf_tables-blacklist.conf

    内容是:
    blacklist nf_tables

     

    3、重启服务器reboot

    4、查询netfilter (nf_tables)内核模块位置

    find / name | grep nf_tables


    5、测试加载模块

    加载该模块:insmod nf_tables.ko.xz 报错,发现无法加载,修复完成。

    # insmod nf_tables.ko.xz

    方法三:容器内系统禁用方法

    如果无法禁用 nf_tables 内核模块,在系统上没有运行任何容器的情况下,可以通过禁用用户命名空间来缓解漏洞。在禁用之前,需要仔细评估并确认禁用所带来的影响,

    例如:许多容器实现需要使用 user_namespaces 来增强安全性和隔离性。

    RedHat/CentOS:

    # echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf

    # sysctl -p /etc/sysctl.d/userns.conf

     

    Debian/Ubuntu:

    如果不需要,可禁用非特权用户创建命名空间的能力。临时禁用执行以下命令:

    # sudo sysctl -w kernel.unprivileged_userns_clone=0

     

    重启后仍然禁用:

    # echo kernel.unprivileged_userns_clone=0 | sudo tee /etc/sysctl.d/99-disable-unpriv-userns.conf

    赞同 0 反对 0
    回复

    漫漫漫过海湾

加入交流群

请使用微信扫一扫!