谷歌Project Zero研究人员Maddie Stone发现了安卓kernel的一个0 day漏洞,漏洞CVE编号为CVE-2019-2215,是,之后研究人员发现了该0day漏洞的在野利用,与以色列监控厂商NSO有关,NSO公司以出售0 day漏洞利用给政府及其他客户以控制目标的安卓设备而著名。由于发现了该漏洞的在野利用,因此该漏洞在提交给安卓安全团队7天后就公布了漏洞详情和PoC代码。
该0 day漏洞是安卓kernel的binder驱动的UAF漏洞,攻击者利用该漏洞可以将本地用户或APP进行权限提升最终获取受影响设备的root权限,并有可能远程地完全控制设备。研究人员称由于该漏洞可以从chrome沙箱访问,因此该0 day漏洞可以与Chrome rendering漏洞组合进行利用。
为证明该漏洞可以被利用获取本地任意kernel读写权限,研究人员创建了本地的POC漏洞利用。只需要非可信的APP代码执行就可以利用该漏洞。
下图是在运行安卓10(安全补丁日期为2019年9月)的Pixel 2设备上的PoC演示:
PoC代码如下:
#include <fcntl.h> #include <sys/epoll.h> #include <sys/ioctl.h> #include <unistd.h> #define BINDER_THREAD_EXIT 0x40046208ul int main() { int fd, epfd; struct epoll_event event = { .events = EPOLLIN }; fd = open("/dev/binder0", O_RDONLY); epfd = epoll_create(1000); epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event); ioctl(fd, BINDER_THREAD_EXIT, NULL); }
存在漏洞的安卓kernel版本发布时间早于2018年4月,2017年12月发布的包含补丁的4.14 LTS Linux kernel只包含在AOSP Android kernel v3.18, 4.4和4.9版本中。
因此,大多数厂商的使用未修复的kernel版本的安卓设备都受到该漏洞的影响,包含使用了最新安卓更新的设备,受影响设备影响包括但不限于:
·Pixel 1
·Pixel 1 XL
·Pixel 2
·Pixel 2 XL
·华为P20
·小米(红米) 5A
·小米(红米) Note 5
·小米 A1
·Oppo A3
·Moto Z3
·Oreo LG phones
·三星S7
·三星S8
·三星S9
注:运行最新安卓kernel版本的Pixel 3, 3 XL, 3a不受该漏洞的影响。
该漏洞评估等级为高危,需要安装恶意应用才可以进行利用。虽然攻击者利用该漏洞可以获取安卓设备的root权限,但用户无需太过担心,因此漏洞利用的攻击场景很少。
谷歌将在10月的Android Security Bulletin中修复该漏洞,也会通知OEM厂商,但除Pixel外的大多数受影响的设备可能不会马上收到补丁。