溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

APPLE MACOS內(nèi)核OOB寫入權(quán)限提升漏洞CVE-2020-27897的示例分析

發(fā)布時(shí)間:2021-12-28 10:55:19 來源:億速云 閱讀:182 作者:小新 欄目:安全技術(shù)

這篇文章給大家分享的是有關(guān)APPLE MACOS內(nèi)核OOB寫入權(quán)限提升漏洞CVE-2020-27897的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

僅供參考學(xué)習(xí)使用。

漏洞分析

用戶空間和英特爾內(nèi)核驅(qū)動(dòng)程序之間的通信是使用IOConnectCallMethod完成的,而IOConnectCallMethod最終還會(huì)使用Mach消息。IntelMTRenderFunctions是一個(gè)類,它負(fù)責(zé)處理來自客戶端的內(nèi)核命令以便通過execute()方法來呈現(xiàn)UI信息。每個(gè)內(nèi)核命令都由一個(gè)數(shù)值標(biāo)識(shí),在我們的例子中,我們將關(guān)注命令0x10005。除了內(nèi)核命令號(hào)之外,execute()還可以接受來自客戶端緩沖區(qū)的數(shù)據(jù)。此緩沖區(qū)中的偏移量用于生成結(jié)構(gòu)地址的算術(shù)運(yùn)算,這個(gè)運(yùn)算操作會(huì)在未進(jìn)行邊界檢查的情況下發(fā)生,并觸發(fā)越界寫入漏洞。

對(duì)于代碼路徑IntelMTLRenderFunctions::execute()的描述如下:用戶空間客戶端可以通過調(diào)用IOAccelSharedUserClient2::create_shmem()函數(shù)創(chuàng)建兩個(gè)共享內(nèi)存映射,該函數(shù)由另一個(gè)內(nèi)核擴(kuò)展IOAcceleratorFamily2提供。第一個(gè)內(nèi)存映射將用作請(qǐng)求的分段描述符,而第二個(gè)內(nèi)存映射包含一個(gè)命令緩沖區(qū)。create_shmem()函數(shù)將使用唯一的ID注冊(cè)映射并返回它們,然后將這些ID與內(nèi)核命令緩沖區(qū)一起傳遞給IOAccelCommandQueue::s_submit_command_buffers(),這個(gè)內(nèi)核命令緩沖區(qū)的大致結(jié)構(gòu)(數(shù)組)如下所示:

struct command {     uint32_t type;     uint32_t size;     uint8_t *cmd; }

這個(gè)數(shù)組之后會(huì)進(jìn)行分割,最終將以一個(gè)內(nèi)核命令傳遞給IGAccelCommandQueue::processKernelCommand(),該內(nèi)核命令結(jié)構(gòu)如下:

struct command {     uint32_t    cmd_id;           // 0x10005     uint32_t    size;                   uint32_t    offset;           // the offset that causes no boundary check     uint32_t    loop_counter;       uint32_t    zero1;     uint32_t    zero2;     uint32_t    controlled_value; // controlled value which can be written to the offset     uint32_t    zero3; };

接下來,它將會(huì)傳遞給AppleIntelKBLGraphics中的IntelMTLRenderFunctions::execute()并處理內(nèi)核命令0x10005:

APPLE MACOS內(nèi)核OOB寫入權(quán)限提升漏洞CVE-2020-27897的示例分析

下面給出的是針對(duì)該漏洞的利用PoC:

APPLE MACOS內(nèi)核OOB寫入權(quán)限提升漏洞CVE-2020-27897的示例分析

總結(jié)

內(nèi)核驅(qū)動(dòng)程序中的漏洞總是非常的有意思,它們的攻擊向量往往需要伴隨遠(yuǎn)程代碼執(zhí)行漏洞。一旦存在這種漏洞,那么將有可能導(dǎo)致目標(biāo)設(shè)備完全被攻擊者接管。

感謝各位的閱讀!關(guān)于“APPLE MACOS內(nèi)核OOB寫入權(quán)限提升漏洞CVE-2020-27897的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

oob
AI