【CVE-2023-1829】Linux Kernel权限提升漏洞(CVE-2023-1829)centos7解决方案

Linux Kernel权限提升漏洞(CVE-2023-1829)centos7解决方案

一、漏洞说明

  1. 漏洞概述
    6月20日,启明星辰VSRC监测到Linux Kernel权限提升漏洞(CVE-2023-1829)的漏洞细节及PoC在互联网上公开,该漏洞的CVSSv3评分为7.8。
    Linux 内核流量控制索引过滤器 (tcindex) 中存在释放后使用漏洞,由于tcindex_delete 函数在某些情况下不能正确停用过滤器,同时删除底层结构,可能会导致双重释放结构,本地低权限用户可利用该漏洞将其权限提升为 root。

  2. 影响范围
    2.6.12-rc2 <= Linux Kernel版本 < 6.3

  3. 整改建议
    目前该漏洞已经修复,受影响用户可将Linux内核更新到以下版本:

  • Linux Kernel 4.14.308
  • Linux Kernel 4.19.276
  • Linux Kernel 5.4.235
  • Linux Kernel 5.10.173
  • Linux Kernel 5.15.100
  • Linux Kernel 6.1.18
  • Linux Kernel 6.2.5
  • Linux Kernel 6.3

二、centos7升级内核至kernel-lt-5.4.248,

综合评估,升级到kernel-lt-5.4.248,原因如下:
A. 长期支持版本(kernel-lt),更加稳定一些
B. 与当前版本差异小

关于内核种类:
kernel-ml
kernel-ml 中的ml是英文【 mainline stable 】的缩写,elrepo-kernel中罗列出来的是最新的稳定主线版本。
kernel-lt
kernel-lt 中的lt是英文【 long term support 】的缩写,elrepo-kernel中罗列出来的长期支持版本。

方式一:在线yum升级内核

  1. 载入密钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  1. 安装 ELRepo 最新版本
yum install -y https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
  1. 列出可以使用的 kernel 包版本:

lt:长期维护版
ml:最新稳定版

yum list available --disablerepo=* --enablerepo=elrepo-kernel
  1. 安装指定的 kernel 版本
yum install -y kernel-lt-5.4.248-1.el7.elrepo --enablerepo=elrepo-kernel
  1. 设置开启系统启动时使用的内核版本
    内核安装好后,需要设置为默认启动选项并重启后才会生效.
    查看系统上的所有可用内核:
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
[root@rccccc sjnh]# sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.248-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-957.27.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-7455408d9cd4479488e3432aee44b4ce) 7 (Core)

刚刚安装的内核即0 : CentOS Linux (5.4.248-1.el7.elrepo.x86_64) 7 (Core)
把grub2默认设置为0(及默认启动刚安装的内核)

grub2-set-default 0

或者

grub2-set-default "CentOS Linux (5.4.248-1.el7.elrepo.x86_64) 7 (Core)"

或者手动修改

vim /etc/default/grub

将GRUB_DEFAULT设置为0

查看内核启动项

grub2-editenv list
  1. 生成 grub 配置文件并重启
  • 生成grup配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重启服务器
reboot
  1. 验证是否安装成功
uname -r
  1. 删除旧内核
rpm -qa | grep kernel
yum remove kernel-版本

方式二:离线rpm升级内核

  1. 下载rpm包
    kernel rpm 历史版本:
https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/

包说明:

  • kernel-lt-headers 包含用于编译内核模块所需的头文件。
  • kernel-lt-devel 包含用于开发和构建内核模块的库和工具。
  • kernel-lt 是实际的内核包,包含了最新的长期支持内核版本。

如果你需要进行内核模块的开发或构建,你可能需要安装 kernel-lt-headers 和 kernel-lt-devel 包。而如果你只是想安装最新的长期支持内核版本,你可以直接安装 kernel-lt 包。

我这里只下载kernel-lt包

https://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.248-1.el7.elrepo.x86_64.rpm
  1. 下载密钥
https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  1. 上传至服务器并安装
    导入密钥
rpm --import ./RPM-GPG-KEY-elrepo.org

安装内核

rpm -ivh ./kernel-lt-5.4.248-1.el7.elrepo.x86_64.rpm
  1. 查看已安装的内核版本
rpm -qa | grep kernel
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
  1. 设置开启系统启动时使用的内核版本
grub2-set-default 0

或者

grub2-set-default "CentOS Linux (5.4.248-1.el7.elrepo.x86_64) 7 (Core)"

或者手动修改

vim /etc/default/grub

将GRUB_DEFAULT设置为0

查看内核启动项

grub2-editenv list
  1. 生成 grub 配置文件并重启
  • 生成grup配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重启服务器
reboot
  1. 验证是否安装成功
uname -r
  1. 删除旧内核
rpm -qa | grep kernel
yum remove kernel-版本
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值