在 Android 操作系統(tǒng)中,研究人員發(fā)現(xiàn)了一個編號為 CVE-2024-31317 的嚴(yán)重漏洞。該漏洞允許攻擊者借助 Zygote 進(jìn)程,在整個系統(tǒng)范圍內(nèi)執(zhí)行代碼并提升權(quán)限。此缺陷影響運行 Android 11 或更早版本的設(shè)備,在 Android 生態(tài)系統(tǒng)中暴露出一個不容忽視的安全隱患。
背景和漏洞詳細(xì)信息
Zygote 進(jìn)程作為 Android 的基礎(chǔ)組件,承擔(dān)著生成新的應(yīng)用程序和系統(tǒng)級進(jìn)程的關(guān)鍵任務(wù)。它以系統(tǒng)權(quán)限運行,這使其成為了企圖提升訪問權(quán)限的攻擊者的重點目標(biāo)。
Android 啟動過程的高級概述
該漏洞的根源在于系統(tǒng)服務(wù)器處理 "hidden_api_blacklist_exemptions" 設(shè)置的方式。這種處理方式存在缺陷,導(dǎo)致某些應(yīng)用程序能夠繞過 Android 的隱藏 API 限制。具體而言,系統(tǒng)服務(wù)器在向 Zygote 傳遞此設(shè)置時,未能正確轉(zhuǎn)義換行符,這一疏忽給攻擊者創(chuàng)造了可乘之機,他們能夠向 Zygote 進(jìn)程注入任意命令。
通過 ADB Shell 進(jìn)行利用
攻擊者可借助 Android Debug Bridge(ADB)Shell 來利用這一漏洞。ADB Shell 具備 "WRITE_SECURE_SETTINGS" 權(quán)限,能夠修改 "hidden_api_blacklist_exemptions" 設(shè)置。攻擊者通過向該設(shè)置注入惡意命令,就能夠以系統(tǒng)范圍的權(quán)限執(zhí)行任意代碼。
Android 系統(tǒng)服務(wù)器源代碼中存在漏洞的部分。
概念驗證漏洞展示了攻擊者如何通過注入有效載荷來生成具有提升權(quán)限的新進(jìn)程,從而將權(quán)限從普通 shell 用戶提升至系統(tǒng)用戶。據(jù)研究人員介紹,這一進(jìn)程可被配置為執(zhí)行諸如啟動持久 shell 等命令,使得攻擊者能夠持續(xù)控制設(shè)備。
利用此漏洞可能引發(fā)嚴(yán)重后果。若漏洞未得到妥善清除,極有可能導(dǎo)致設(shè)備陷入啟動循環(huán)。
風(fēng)險緩解措施
為降低這些風(fēng)險,用戶可以通過 ADB Shell 刪除被修改的 "hidden_api_blacklist_exemptions" 設(shè)置,然后重啟設(shè)備,以此恢復(fù) Zygote 的正常運行。不過,這一操作也會清除任何已注入的有效載荷,意味著攻擊者若想重新獲取提升的訪問權(quán)限,需要再次重復(fù)利用該漏洞的過程。
此漏洞的發(fā)現(xiàn),凸顯了保護(hù) Android 核心進(jìn)程的重要性,同時也強調(diào)了及時進(jìn)行漏洞修補,以防范此類安全隱患的緊迫性。