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