中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

博客| 防城港市| 武汉市| 罗江县| 富阳市| 保定市| 镇雄县| 洛阳市| 吴忠市| 丹东市| 东至县| 五莲县| 柘城县| 木兰县| 东城区| 渭源县| 云梦县| 陈巴尔虎旗| 阿拉善左旗| 库车县| 定南县| 东乡族自治县| 沙坪坝区| 孝义市| 汝南县| 安西县| 镇赉县| 渭南市| 健康| 抚松县| 广饶县| 涪陵区| 波密县| 平乡县| 札达县| 武功县| 汉源县| 长寿区| 定远县| 逊克县| 富蕴县|