亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

APPLE MACOS內核OOB寫入權限提升漏洞CVE-2020-27897的示例分析

發布時間:2021-12-28 10:55:19 來源:億速云 閱讀:194 作者:小新 欄目:安全技術

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

僅供參考學習使用。

漏洞分析

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

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

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

這個數組之后會進行分割,最終將以一個內核命令傳遞給IGAccelCommandQueue::processKernelCommand(),該內核命令結構如下:

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; };

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

APPLE MACOS內核OOB寫入權限提升漏洞CVE-2020-27897的示例分析

下面給出的是針對該漏洞的利用PoC:

APPLE MACOS內核OOB寫入權限提升漏洞CVE-2020-27897的示例分析

總結

內核驅動程序中的漏洞總是非常的有意思,它們的攻擊向量往往需要伴隨遠程代碼執行漏洞。一旦存在這種漏洞,那么將有可能導致目標設備完全被攻擊者接管。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

oob
AI

梅州市| 保靖县| 彭山县| 黑河市| 北宁市| 新乐市| 翁牛特旗| 叶城县| 古蔺县| 东明县| 英超| 绍兴市| 会东县| 铁岭县| 随州市| 汉阴县| 丰台区| 石楼县| 芜湖市| 镇平县| 罗定市| 平乐县| 丽水市| 南汇区| 巴彦县| 临城县| 新巴尔虎右旗| 邹城市| 安西县| 高密市| 泰宁县| 方正县| 台南市| 沅江市| 灵石县| 乌什县| 东平县| 芒康县| 胶州市| 英吉沙县| 澄江县|