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命令,查看内核版本,已升级至最新版本

卸载不需要的内核重启

成功替换内核

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot Vue Bootstrap 旅游管理系统

SpringBoot Vue 旅游管理系统源码&#xff0c;附带环境安装&#xff0c;运行说明 源码地址 开发环境 jdk1.8,mysql8,nodejs16,navicat,idea 使用技术springboot mybatis vue bootstrap 部分功能截图预览

【SQLAlChemy】常见的数据类型有哪些,Column可选的参数有哪些呢?

常见数据类型与Column参数 常见类型 Integer&#xff1a;整数类型&#xff0c;对应数据库的 int 类型。Float&#xff1a;浮点数类型&#xff0c;对应数据库的 float 类型。它占用 32 位空间。Double&#xff1a;双精度浮点数类型&#xff0c;对应数据库的 double 类型&#…

【CS.PL】Lua 编程之道: 基础语法和数据类型 - 进度16%

2 初级阶段 —— 基础语法和数据类型 文章目录 2 初级阶段 —— 基础语法和数据类型2.0 关键字(keywords) &#x1f525;2.1 注释与标识符2.1.1 注释2.1.2 标识符 2.2 变量与赋值2.2.1 所有变量默认是全局变量 ≠ local, 有一个例外2.2.2 local变量是局部变量, 以end作为边界2.…

创建节约机关怎样向媒体投稿报道宣传?

创建节约机关并向媒体投稿报道宣传是一项重要的工作&#xff0c;它不仅能够提升机关的形象&#xff0c;还能促进社会各界对节约型社会的认识和支持。 作为一名新晋信息宣传员,初入职场的我满腔热血,怀揣着用文字传递价值的理想,却在投稿的道路上屡遭波折。面对每月的宣传任务,我…

表 达式树

》》》可以借助 LINQPad工具 using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using System.Transactions;namespace EFDemo {public cla…

vite工程化搭建vue项目之自动按需导入

背景 当我们在使用vue3组合式开发的时候&#xff0c;大多数情况下我们的代码可能是这样的 <script setup lang"ts"> import { ref, reactive, toRefs, onMounted, computed } from vue; defineProps({}); </script><template><div></di…

共模信号与差模信号

差模信号又称串模信号&#xff0c;指的是两根线之间的信号差值&#xff1b;而共模信号又称对地信号&#xff0c;指的是两根线分别对地的信号。 差模信号&#xff1a;大小相等&#xff0c;方向相反的信号。共模信号&#xff1a;大小相等&#xff0c;方向相同的信号。 对于两输…

python的np.array()函数

1、创建数组 2、 与矩阵相关的函数 3、与排序相关的函数 4、 一元计算函数 5、 多元计算函数 6、 与文件读写相关的函数 7、与数组形状、属性相关的函数 8、 常用计算函数 9、 数组选取:切片和索引 10、np.random相关函数 Numpy常用的20个函数 一…

京准电钟 | 对比GPS,北斗卫星授时的场景有哪些?

京准电钟 | 对比GPS&#xff0c;北斗卫星授时的场景有哪些&#xff1f; 京准电钟 | 对比GPS&#xff0c;北斗卫星授时的场景有哪些&#xff1f; 对比国外的GPS&#xff0c;我国北斗卫星授时由于其高精度和稳定性&#xff0c;在各个领域都有广泛的应用场景。 以下是一些单北斗卫…

为什么需要负样本

假如我们只有正样本&#xff0c;模型在最开始训练的时候都是错误的&#xff0c;随着模型的迭代&#xff0c;准确率逐渐从0到1&#xff0c;最终将所有的样本都判别成正样本&#xff0c;也就是都在线的上方。 但真实的场景中有正有负&#xff0c;例如我们要做一个猫狗分类器&…

WINUI——CommunityToolkit.Mvvm Messenger接收消息时报错:Cannot access a disposed object.

背景 WINUI开发时使用CommunityToolkit.Mvvm的Messemger让UI展示一些信息时出现错误&#xff1a; System.ObjectDisposedException:“Cannot access a disposed object. ObjectDisposed_ObjectName_Name” 详细见下述截图&#xff1a; 开发环境 WIN11 WINUI&#xff13; …

如何在3天内开发一个鸿蒙app

华为鸿蒙操作系统&#xff08;HarmonyOS&#xff09;自2.0版本正式上线以来&#xff0c;在短时间内就部署超过了2亿台设备&#xff0c;纵观全球操作系统的发展史&#xff0c;也是十分罕见的。与其他手机操作系统不同&#xff0c;HarmonyOS自诞生之日起&#xff0c;就是一款面向…

【C++取经之路】继承

目录 继承的概念及定义 单继承的格式 继承方式和访问限定符 继承后子类访问基类成员的权限 基类和派生类对象赋值转换 切片 继承中的作用域 引申&#xff1a;重载和隐藏的区别 派生类的默认成员函数 继承与友元 继承与静态成员 如何实现一个不能被继承的类 复杂的…

【Java】解决Java报错:IllegalStateException during HTTP Request

文章目录 引言一、IllegalStateException的定义与概述1. 什么是IllegalStateException&#xff1f;2. IllegalStateException在HTTP请求中的常见触发场景3. 示例代码 二、解决方案1. 确保响应只被提交一次2. 正确管理Servlet的生命周期3. 避免重复访问输入流和输出流4. 使用框架…

HTML静态网页成品作业(HTML+CSS)—— 名人霍金介绍网页(6个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…

vscode切换Python解释器

在vscode上切换解析器解决方案&#xff1a; 1、确认自己已经安装了python环境 2、command shift p ,在这里切换即可&#xff0c;见下图&#xff1a; 3、如果状态栏也就是右下角不现实切换操作的话&#xff0c;打开设置&#xff1a;

【六】Linux安装部署Nginx web服务器--及编写服务器启动脚本

一、部署安装nginx 1、查看nginx是否安装依赖包 [rootlocalhost ~]# rpm -q zlib-devel pcre-devel package zlib-devel is not installed package pcre-devel is not installed 2、若没有则安装nginx 依赖包 [rootlocalhost ~]# yum -y install zlib-devel* pcre-dev…

01 Pytorch 基础

paddle不需要放数据到gpu&#xff01; 区别&#xff1a;1.batch_norlization 不同 2. 1.数据处理 1.取一个数据&#xff0c;以及计算大小 &#xff08;剩下的工作&#xff0c;取batch&#xff0c;pytorch会自动做好了&#xff09; 2.模型相关 如何得到结果 3.模型训练/模型…

6月13日 Qtday1

#include "mywidget.h" //腾讯会议的登录界面 MyWidget::MyWidget(QWidget *parent): QMainWindow(parent) {this->setFixedSize(468,830);//主窗口大小this->setStyleSheet("background-color:rgb(255,255,255)");//主窗口背景this->setWindowTi…

Oxlint 会取代 Eslint 吗?

最近&#xff0c;一个基于 Rust 的代码检查工具 Oxlint 在国外前端社区引起了热议&#xff0c;许多专家对其给予了高度评价。那么&#xff0c;相比于它的大哥 Eslint&#xff0c;Oxlint 有哪些优势&#xff1f;它会在未来取代 Eslint 吗&#xff1f;本文将讨论这个话题。 Oxc 和…