Linux kernel外地提权误差清静通告

宣布时间 2019-07-30

? 误差编号和级别


CVE编号:CVE-2019-13272,危险级别:高危,CVSS分值:7.8


? 影响版本


受影响的版本


Linux Kernel < 5.1.17


? 误差概述


Linux kernel是美国Linux基金会宣布的开源操作系统Linux所使用的内核。


Linux kernel 5.1.17之前版本中保存清静误差,该误差源于kernel/ptrace.c文件的ptrace_link没有准确处置惩罚对凭证的纪录。


当挪用PTRACE_TRACEME时,ptrace_link函数将获得对父历程凭证的RCU引用,然后将该指针指向get_cred函数。可是,工具struct cred的生涯周期规则不允许无条件地将RCU引用转换为稳固引用。


PTRACE_TRACEME获取父历程的凭证,使其能够像父历程一样执行父历程能够执行的州操作。若是恶意低权限子历程使用PTRACE_TRACEME并且该子历程的父历程具有高权限,该子历程可获取其父历程的控制权并且使用其父历程的权限挪用execve函数建设一个新的高权限历程。


攻击者最终控制具有高权限的两个历程ptrace关系,可以被用来ptrace suid二进制文件并获得root权限。


? 误差验证


EXP:https://cxsecurity.com/issue/WLB-2019070127


? 修复建议


1.现在厂商已宣布升级补丁以修复误差,补丁获取链接:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6994eefb0053799d2e07cd140df6c2ea106c41ee


2.升级Linux kernel至5.1.17以上版本。

? 参考链接


https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6994eefb0053799d2e07cd140df6c2ea106c41ee