谷歌發現未修復的安卓0day 可被用于獲取設備的根權限

來源:FreeBuf.COM | 2019-10-06 22:54:58 |

谷歌發現一個未修復的安卓0day已遭利用。該0day存在于安卓操作系統的內核代碼中,可被攻擊者用于獲取設備的根權限。頗具諷刺意味的是,這個0day曾在2017年12月于安卓內核版本3.18、4.14、4.4和4.9中被修復,但新版本被指易受攻擊。

android-0-day.png

受影響設備

谷歌研究人員認為該漏洞影響如下運行安卓8.x及后續版本的安卓手機型號。

安卓9和安卓10預覽版 Pixel 2

華為P20

小米紅米5A

小米紅米Note 5

小米A1

Oppo A3

摩托羅拉Z3

Oreo LG系列手機

三星S7、S8、S9

研究人員表示,“利用需要很少或不需要每臺設備自定義”,意味著它可適用于大量手機型號,盡管他們僅在上述受影響手機型號上通過手動審計驗證了這一點。

詳情及PoC

該漏洞的編號是CVE-2019-2215。它存在于android-msm-wahoo-4.4-pie分支中(也有可能存在于其它地方)。它是/drivers/android/binder.c的binder驅動中的binder_線程結構的wait member函數釋放后使用漏洞。

binder_poll()傳遞可休眠的線程->wait等待隊列。當使用epoll的現成使用BINDER_THREAD_EXIT明確退出時,該等待隊列被釋放,但并未從相應的epoll數據結構中刪除。當該進程隨后退出時,epoll清理代碼嘗試訪問等待列表,從容導致釋放后使用后果。

如下PoC展示的是KASAN內核構建中的UAF崩潰。

#include

#include

#include

#include

#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);

}

被指和NSO組織有關

該漏洞是由谷歌Project Zero團隊發現的,隨后由谷歌威脅分析團隊(TAG)證實。這兩個團隊曾在上個月發現了影響iOS用戶的14個0day漏洞。不過這個安卓0day和這14個iOS 0day之間似乎并不相關。前者的詳情目前是有限的。

谷歌TAG團隊認為這個安卓0day是以色列利用和監控工具的賣家NSO集團的手筆。該公司長久以來被指責向專制政權出售黑客工具,不過最近由于遭受的批評增多,該公司承諾會和濫用黑客工具監控無辜人員或反對黨派人士的客戶作斗爭。

該公司否認了這個安卓0day出自他們之手。該公司的一名發言人表示,“NSO過去未出售今后也不會出售利用或漏洞。這個利用和NSO沒有關系,我們主要開發旨在幫助受許可限制的情報和執法部門開發用于挽救生命的產品。”

危險系數沒那么高

好在這個0day并不像之前的0day那樣危險。它并非遠程代碼執行漏洞,也就并非無需用戶交互就能遭利用的0day。攻擊者利用這個漏洞前必須具備某些條件。研究員表示,“這個漏洞是一個本地提權漏洞,允許完全攻陷一臺易受攻擊的設備。如果該利用是通過Web傳遞的,需要和渲染器漏洞配對,因為該漏洞可通過沙箱訪問。”

安卓開源項目的一名發言人表示,“這個問題被評為高危漏洞,但要利用需要安裝一個惡意應用程序。任何其它向量如通過web瀏覽器要求和其它利用組成利用鏈。”

安卓團隊表示,“我們已將問題告知安卓合作伙伴,補丁已存在于安卓通用內核(Common Kernel)中。Pixel 3和3a設備并不受影響,Pixel 1和2設備將在十月更新中收到更新。”

谷歌Project Zero團隊通常會給軟件開發人員90天的期限來修復該漏洞,之后再發布詳情和PoC利用代碼,但鑒于該漏洞已遭在野利用,因此在收到漏洞報告7天后就將其公開。

除非特別注明,本站所有文章均不代表本站觀點。投訴QQ:55313 8779
网络游戏赛车