RedHat8.4离线升级内核(漏洞编号CVE-2024-1086)

一、背景

针对Linux内核提取权限漏洞 (漏洞编号CVE-2024-1086),整理离线环境的修复方案。本文以离线修复方案为主进行说明,第八章对在线修复方案进行说明。

(一) 漏洞简介

近日,绿盟科技CERT监测网上有研究员公开披露了一个Linux内核权限提升漏洞(CVE-2024-1086)的细节信息与验证工具,由于Linux内核的netfilter:nf_tables组件存在释放后重利用漏洞, nft_verdict_init() 函数允许在钩子判定中使用正值作为丢弃错误,当 NF_DROP 发出类似于 NF_ACCEPT 的丢弃错误时,nf_hook_slow() 函数会导致双重释放漏洞,本地攻击者利用此漏洞可将普通用户权限提升至 root 权限。目前已有PoC公开,请相关用户尽快采取措施进行防护。目前已有PoC公开,请相关用户尽快采取措施进行防护。

Netfilter是Linux内核提供的一个框架,它允许以自定义处理程序的形式实现各种与网络相关的操作。Netfilter为数据包过滤、网络地址转换和端口转换提供了各种功能和操作,它们提供了通过网络引导数据包和禁止数据包到达网络中的敏感位置所需的功能。

(二) 影响范围

受影响版本
3.15 <= Linux kernel < 6.1.76
6.2 <= Linux kernel < 6.6.15
6.7 <= Linux kernel < 6.7.3
Linux kernel = 6.8-rc1
不受影响版本
Linux kernel = 4.19.307
Linux kernel = 5.4.269
Linux kernel = 5.10.210
Linux kernel = 5.15.149
Linux kernel >= 6.1.76
Linux kernel >= 6.6.15
Linux kernel >= 6.7.3
Linux kernel >= 6.8-rc2

直接安装6.9.4新版本的内核如需要安装不受影响的版本请自行解决

二、检查内核版本

远程服务器,使用uname -r命令查看操作系统内核版本

三、下载新版内核

(一) 下载公钥,用于校验软件包

RPM-GPG-KEY-elrepo.org

https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

(二) 下载ELRepo源

根据操作系统下载对应版本ELRepo源

Centos 9:elrepo-release-9.el9.elrepo.noarch.rpm

https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm

其他操作系统

Centos 8:

https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

Centos 7:

https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

(三) 下载新版内核

1. 方案A

找一台相同操作系统,可联网的服务器,下载内核相关安装包,默认下载最新版本

yum install --downloadonly --downloaddir=/home/kernel --enablerepo=elrepo-kernel kernel-ml
yum install --downloadonly --downloaddir=/home/kernel --enablerepo=elrepo-kernel kernel-ml-core
yum install --downloadonly --downloaddir=/home/kernel --enablerepo=elrepo-kernel kernel-ml-modules

命令说明:

yum install 安装软件包

–enablerepo=elrepo-kernel 此次安装过程中临时启用elrepo-kernel这个仓库

kernel-ml 新版内核软件包名称

注意默认源中的内核软件包名称为kernel

ml版与lt版可共存

目前CetnOS 9只有ml版本

kernel-ml: 稳定主线版,支持周期短,更新速度快,更快体验新特性。

kernel-lt: 长期维护版,支持周期长,更新速度慢,更加稳定。

2. 方案B

访问ELRepo官方网站下载对应内核版本

①打开下载页面

download [ELRepo Wiki]

②选择任意镜像网站,下载内核版本即可

Centos 9:Index of /kernel/el9/x86_64/RPMS

其他操作系统

Centos 8:Index of /kernel/el8/x86_64/RPMS

Centos 7:Index of /kernel/el7/x86_64/RPMS

③下载如下三个内核包

kernel-ml-6.9.3-1.el9.elrepo.x86_64.rpm

kernel-ml-core-6.9.3-1.el9.elrepo.x86_64.rpm

kernel-ml-modules-6.9.3-1.el9.elrepo.x86_64.rpm

离线下载地址

kernel-6.9.4官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘

四、安装新版内核

将下载的安装包上传至目标服务器,使用cd命令导航至安装包所在目录

[root@localhost kernel]# uname -r
4.18.0-305.el8.x86_64
[root@localhost kernel]# grubby --default-kernel
/boot/vmlinuz-6.9.4-1.el8.elrepo.x86_64
[root@localhost kernel]# grubby --default-index
0
[root@localhost kernel]# grubby --info=ALL | egrep -i 'index|title'
index=0
title="Enterprise Linux (6.9.4-1.el8.elrepo.x86_64) 8.10"
index=1
title="Red Hat Enterprise Linux (4.18.0-305.el8.x86_64) 8.4 (Ootpa)"
index=2
title="Red Hat Enterprise Linux (0-rescue-653201c415464454946530cbf641d7e1) 8.4 (Ootpa)"
[root@localhost kernel]#  grubby --set-default /boot/vmlinuz-6.9.4-1.el8.elrepo.x86_64
The default is /boot/loader/entries/653201c415464454946530cbf641d7e1-6.9.4-1.el8.elrepo.x86_64.conf with index 0 and kernel /boot/vmlinuz-6.9.4-1.el8.elrepo.x86_64
[root@localhost kernel]# uname -r
4.18.0-305.el8.x86_64
[root@localhost kernel]# grubby --default-kernel
/boot/vmlinuz-6.9.4-1.el8.elrepo.x86_64
[root@localhost kernel]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-6.9.4-1.el8.elrepo.x86_64"
args="ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-6.9.4-1.el8.elrepo.x86_64.img $tuned_initrd"
title="Enterprise Linux (6.9.4-1.el8.elrepo.x86_64) 8.10"
id="653201c415464454946530cbf641d7e1-6.9.4-1.el8.elrepo.x86_64"
index=1
kernel="/boot/vmlinuz-4.18.0-305.el8.x86_64"
args="ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet $tuned_params"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-4.18.0-305.el8.x86_64.img $tuned_initrd"
title="Red Hat Enterprise Linux (4.18.0-305.el8.x86_64) 8.4 (Ootpa)"
id="653201c415464454946530cbf641d7e1-4.18.0-305.el8.x86_64"
index=2
kernel="/boot/vmlinuz-0-rescue-653201c415464454946530cbf641d7e1"
args="ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet"
root="/dev/mapper/rhel-root"
initrd="/boot/initramfs-0-rescue-653201c415464454946530cbf641d7e1.img"
title="Red Hat Enterprise Linux (0-rescue-653201c415464454946530cbf641d7e1) 8.4 (Ootpa)"
id="653201c415464454946530cbf641d7e1-0-rescue"

五、关闭安全引导(可选特殊情况)

新版内核安装完,重启服务器,部分服务器会报错无法进入,需要联系虚拟机管理人员禁用 UEFI 安全引导

具体操作步骤如下:

①关闭虚拟机

②邮件虚拟机编辑设置

③虚拟机选项》引导选项》安全引导,去除已启用

④启动虚拟机即可正常进入服务器

VMVare有 UEFI 安全引导的说明

六、重启服务器

重启服务器使用uname -r命令,查看内核版本,已升级至最新版本

卸载不需要的内核重启

成功替换内核

  • 29
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值