⚠️ 仅供教育和授权安全研究使用
非常感谢原始 PoC 作者 BCOLES
在 Linux 内核 5.1.17 之前,kernel/ptrace.c 中的 ptrace_link 错误处理了想要创建 ptrace 关系的进程的凭证记录,这使得本地用户能够通过利用某些具有父子进程关系的场景来获得 root 访问权限,其中父进程放弃权限并调用 execve(可能允许攻击者控制)。一个促成因素是对象生命周期问题(也可能导致内核恐慌)。另一个促成因素是将 ptrace 关系错误标记为特权,这可以通过(例如)Polkit 的 pkexec 助手与 PTRACE_TRACEME 利用。注意:在某些环境中,SELinux deny_ptrace 可能是可用的解决方法。

安装 git,然后从 github 仓库克隆脚本:
sudo apt install git -y
git clone https://github.com/asepsaepdin/CVE-2019-13272.git
使用 gcc 编译 poc.c,命令如下:
cd CVE-2019-13272
gcc -s poc.c -o become_root
运行脚本,命令如下:
./become_root