产品运维与网络安全

Linux Kernel权限提升漏洞(CVE-2023-3269)的修复过程

关于Linux Kernel权限提升漏洞(CVE-2023-3269)的预警提示

一、漏洞详情

Linux内核是 Linux 操作系统(OS)的主要组件,也是计算机硬件与其进程之间的核心接口。Maple Tree是Linux内核6.1中引入的一种新的VMA数据结构系统,它取代了Red-Black Tree并依赖于Read-Copy-Update(RCU)机制。

近日监测到Linux内核权限提升漏洞(CVE-2023-3269)的漏洞,该漏洞存在于内存管理子系统中,被称为“StackRot”。Linux内核版本6.1 – 6.4在处理堆栈扩展时存在漏洞,由于负责管理虚拟内存区域(VMA)的Maple Tree可以在没有正确获取内存管理(MM)写锁的情况下进行节点替换,可能导致释放后使用(UAF),本地低权限用户可利用该漏洞提升权限。

建议受影响用户做好资产自查以及预防工作,以免遭受黑客攻击。

二、影响范围

5.3 <= Linux kernel版本<=6.3

三、修复建议

目前该漏洞已经修复,受影响用户可升级到Linux kernel 6.1.37、6.3.11、6.4.1或更高版本。

四、修复过程
CentOS 7.9 升级内核 kernel-ml-6.3.0版本

地址

http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS

默认内核版本为3.10.0,现升级到 6.3.0 版本

查看当前内核版本

[root@localhost ~]# uname -r
3.10.0-1160.53.1.el7.x86_64

wget 下载

wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-6.3.0-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.3.0-1.el7.elrepo.x86_64.rpm

安装

[root@ecs-65685 ~]# rpm -ivh kernel-ml-6.3.0-1.el7.elrepo.x86_64.rpm 
warning: kernel-ml-6.3.0-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
1:kernel-ml-6.3.0-1.el7.elrepo    ################################# [100%]

[root@ecs-65685 software]# rpm -ivh kernel-ml-devel-6.3.0-1.el7.elrepo.x86_64.rpm
warning: kernel-ml-devel-6.3.0-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:kernel-ml-devel-6.3.0-1.el7.elre################################# [100%]

查看当前内核

[root@ecs-65685 ~]# cat /boot/grub2/grub.cfg |grep ^menuentry

设置启动内核

[root@ecs-65685 ~]# grub2-set-default 0
# 或者
grub2-set-default 'CentOS Linux (6.3.0-1.el7.elrepo.x86_64) 7 (Core)'

重新生成一个grub2配置文件

[root@ecs-65685 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.3.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-6.3.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.53.1.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.53.1.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-acca19161ce94d449c58923b12797030
Found initrd image: /boot/initramfs-0-rescue-acca19161ce94d449c58923b12797030.img
done

重启系统

[root@ecs-65685 ~]# reboot

 

确认下是否启动默认内核指向上面安装的内核

[root@ecs-65685 ~]# grubby --default-kernel

确认使用的内核版本

uname -r

过程中全部使用的命令顺序如下,按照顺序一条条的输入即可

uname -r
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-6.3.0-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-6.3.0-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-ml-6.3.0-1.el7.elrepo.x86_64.rpm
rpm -ivh kernel-ml-devel-6.3.0-1.el7.elrepo.x86_64.rpm
grub2-set-default 'CentOS Linux (6.3.0-1.el7.elrepo.x86_64) 7 (Core)'
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
grubby --default-kernel

 

Avatar photo

人生长恨水长东

留言

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据