Linux 内核CVE-2024-1086漏洞修复方法

20000_ZuuuuYao 2024-06-14 10:37:02 阅读 60

文章目录

漏洞说明漏洞复现复现步骤 查看系统版本CVE-2024-1086漏洞修复方法一、OpenEuler 修复方法22.03 版本修复方法 二、Ubuntu 修复方法20.04 版本修复方法18.04 版本修复方法

漏洞说明

漏洞详情

Linux kernel权限提升漏洞(CVE-2024-1086)基本情况:攻击者利用该漏洞可在本地进行提权操作,最高可获取目标服务器的root管理权限。

影响范围

3.15<= Linux kernel < 6.1.76

5.2<= Linux kernel < 6.6.15

6.7<= Linux kernel < 6.7.3

6.8:rc1 = Linux kernel

修复建议

升级Linux内核版本修复漏洞。若相关用户暂时无法进行更新,如果业务不需要,可以通过阻止加载受影响的 netfilter (nf_tables) 内核模块来缓解。如果无法禁用该模块,可在非容器化部署中,对用户命名空间进行限制。

漏洞复现

Github官方Linux CVE-2024-1086漏洞复现视频

复现步骤

root用户创建普通账号

# useradd 命令创建用户[root@localhost testuser]# useradd testuser# passwd 命令设置密码[root@localhost testuser]# passwd testuserChanging password for user testuser.New password:Retype new password:passwd: all authentication tokens updated successfully. 切换到普通用户账户

# 新建一个连接使用普通账号登录,不要使用su 命令切换账号# 已经切换到testuser账号了[testuser@localhost ~]$ 在普通账号执行越权命令

# 普通账号查看/etc/shadow文件 被拒绝,该文件存储系统用户密码及相关安全信息的文件只有超级管理员才有足够权限来执行这个命令以查看其内容[testuser@localhost ~]$ cat /etc/shadowcat: /etc/shadow: Permission denied 上传官方复现漏洞脚本

没有脚本可以点击这里下载

# 上传完成后给脚本文件添加执行权限[testuser@localhost ~]$ chmod 777 exploit 执行脚本

# 在脚本目录执行该脚本[testuser@localhost ~]$ ./exploit[*] creating user namespace (CLONE_NEWUSER)...[*] creating network namespace (CLONE_NEWNET)...[*] setting up UID namespace...[*] configuring localhost in namespace...[*] setting up nftables...[+] running normal privesc[*] waiting for the calm before the storm...[*] sending double free buffer packet...[*] spraying 16000 pte's...[*] checking 16000 sprayed pte's for overlap...[+] confirmed double alloc PMD/PTE[+] found possible physical kernel base: 0000000221000000[+] verified modprobe_path/usermodehelper_path: 0000000222a57ee0 ('/sanitycheck')...[*] overwriting path with PIDs in range 0->65536...[!] verified modprobe_path address does not work... CONFIG_STATIC_USERMODEHELPER enabled? 脚本执行完提升权限成功

# 输入id命令 看到已经是root权限了sh-5.1# iduid=0(root) gid=0(root) groups=0(root)# 再输入 cat /etc/shadow 已经能访问了sh-5.1# cat /etc/shadow | head -n 1root:$6$jg8rz9HDnku9ji$Ql8fJ67n8vWy1thQ2o5nkdwvsBTS.2YxWJeRGxCo41bUk3LvII680RKaLXfwX2B383Y.O0/GkNP6d0:19843:0:99999:7:::

查看系统版本

通过查询系统版本信息验证是否在受影响版本内,不同发行版可能文件名不一样

查看系统版本

[root@localhost ~]# cat /etc/os-release NAME="openEuler" VERSION="22.03 LTS" ID="openEuler" VERSION_ID="22.03" PRETTY_NAME="openEuler 22.03 LTS" ANSI_COLOR="0;31"

内核版本

[root@localhost ~]# uname -r5.10.0-60.18.0.50.oe2203.x86_64

CVE-2024-1086漏洞修复方法

适用系统版本

Ubuntu 22.0418.04 OpenEuler 22.03

一、OpenEuler 修复方法

22.03 版本修复方法

查看内核版本

# 执行uname -r 查看内核版本[root@localhost ~]# uname -r5.10.0-60.18.0.50.oe2203.x86_64

在root权限下执行

# 使用dnf包管理器更新软件也包括更新内核,如果更新的软件较多且服务器在国外会下载较慢[root@localhost ~]# dnf update -y

更新完成后重启系统

# 执行重启命令[root@localhost ~]# reboot

重启后查看内核版本

# 内核版本升级完成漏洞修复[root@localhost ~]# uname -r5.10.0-60.139.0.166.oe2203.x86_64

再次复现漏洞

# 已经无法提升权限,漏洞修复成功

二、Ubuntu 修复方法

20.04 版本修复方法

查看内核版本

# 执行uname -r 查看内核版本root@tzsdbusiness01:~# uname -r5.4.0-182-generic

在root权限下执行更新软件资源库

# 更新软件资源库root@tzsdbusiness01:~# apt update

更新软件资源库

root下执行更新软件库

更新软件库更新内核root@tzsdbusiness01:~# apt upgrade -y

更新完成重启系统

# 执行重启root@tzsdbusiness01:~# reboot

18.04 版本修复方法

查看内核版本

# 执行uname -r 查看内核版本suroot@prod-dn03:~$ uname -r5.4.0-150-generic 在root权限下执行更新软件资源库

# 更新软件资源库 root@prod-dn03:~# apt update root下执行更新软件库

# root下执行更新软件库 root@prod-dn03:~# apt upgrade -y 设置内核参数

# 版本为18.04的还需执行以下命令,其他版本无需执行sudo sysctl -w kernel.unprivileged_userns_clone=0echo kernel.unprivileged_userns_clone=0 | \sudo tee /etc/sysctl.d/99-disable-unpriv-userns.conf 重启系统

# 执行重启完成修复 root@prod-dn03:~# reboot



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。