CVE-2016-0728是個Linux內核漏洞,本地用戶可利用這個漏洞提升到root權限。研究人員認為,上千萬臺Linux個人電腦、服務器,以及66%的安卓手機和平板設備面臨威脅。而且,這個漏洞已經存在3年了。
本地提權不稀罕,比較奇葩的是它的利用方式。用漏洞發現者 Perception Point 研究人員的話來說:
你一定得有耐心,因為必須要在內核循環一個32位的整數至0。也就意味著42.9億次系統調用。
以下受影響的版本已發布補丁:
Red Hat Enterprise Linux 7.
CentOS Linux 7.
Scientific Linux 7.
Debian Linux 8.x (jessie) and 9.x (stretch).
SUSE Enterprise 12 (desktop, server and workstation flavours).
Ubuntu 14.04 LTS (Trusty Tahr), 15.04 (Vivid Vervet), and 15.10 (Wily Werewolf).
OpenSUSE Linux LEAP and 13.2.
問題存在于在內核中編譯的密鑰保持服務(也稱為Keyring服務),而且這個服務還需要內核配置開關CONFIG_KEYS為打開狀態。
要把一個32位的整數變量在卷縮到0,攻擊代碼必須循環232次。研究人員用Intel Core i7-5500的CPU破解3.18版內核,用了大約半個小時。 但談到提權利用時,時間通常不是問題。
經確認,CONFIG_KEYS至少在Ubuntu和Debian中是打開狀態。漏洞發現者 Perception Point 聲稱,此漏洞存在于66%的安卓設備中。但從安卓內核配置指南上看,默認的Keyrings服務是沒有啟動的。因此,Perception Point 的說法還有待確認。
不管怎樣,在安卓上利用這個漏洞,需要大量的耐心。你想,如果一塊Core i7都需要30分鐘,那基于ARM的手機又該如何?