经过分析,提权代码中所使用的漏洞是Linux eBPF验证器漏洞(CVE-2017-16995与CVE-2017-16996),最早在2017年12月由Google Project 0的研究人员Jann Horn发现并报告,影响Linux内核版本4.4~4.14。并且在当月,Bruce Leidl在github放出了能在内核版本4.11上实现提权的漏洞利用代码。
而近日,Vitaly Nikolenko公开的提权代码能够影响最新版本的Ubuntu 16.04,是因为该发行版使用的Linux内核版本是4.4,也受到漏洞影响,并且在漏洞报告后的3个月内,Ubuntu一直未修复,猜测可能和Jann Horn的最早漏洞报告中未提及漏洞对4.4版本内核的影响有关。
gcc -o pwned ./upstream44.c
chmod 777 pwned
./pwned