KeyFrame內部研究專用

Black Hat USA 2025 | "Dead Pixel Detected" - A Security Assessment of Apple's Graphics Subsystem

Black Hat·3月23日週一·29 min英文

三句話摘要

Apple 圖形子系統從核心驅動到韌體層存在系統性安全漏洞,幾乎每一層都有可被利用的缺陷。 Apple 圖形子系統的防禦深度只是「提高門檻」而非「消除問題」,只要讀懂層間通訊協定,每一層都還有可挖掘的漏洞。 複雜度本身就是風險:Apple 圖形子系統橫跨多個 vendor 驅動與韌體層,結構過於龐大,任何一層缺乏輸入驗證都可能造成 OOB 讀寫或任意記憶體存取。

重點整理

重點
  • 1

    複雜度本身就是風險:Apple 圖形子系統橫跨多個 vendor 驅動與韌體層,結構過於龐大,任何一層缺乏輸入驗證都可能造成 OOB 讀寫或任意記憶體存取。

  • 2

    粗率重構會引入大量漏洞:IO Mobile Frame Buffer 在 2020 年大規模重構後,漏洞數量急劇飆升;安全社群對新攻擊面的反應存在約六個月的滯後期,這段窗口期極為危險。

  • 3

    Apple 將程式碼下移韌體不等於修復:把攻擊面從 IO Mobile Frame Buffer 移到 DCP 韌體只是「隱藏」而非消除,只要理解層間通訊協定(RTKit/antibody 機制),仍可觸發底層漏洞。

  • 4

    漏洞描述不準確會誤導社群:Apple 將部分 OOB Write 漏洞描述為「Denial of Service」,導致研究者低估危害;研究者強調必須提交可證明可利用性的 PoC,才能讓 Apple 給出正確的 CVE 描述。

實用技巧與重點

乾貨
  • 工具/模組:AMD GPU kernel extension、Display Matrix module、Apple Intel ME Client Controller、AGX GPU module、IO Mobile Frame Buffer (IOMobileFrameBuffer)、Display Co-Processor (DCP) 韌體、RTKit / antibody IPC 機制
  • 漏洞類型:OOB Read/Write、Type Confusion、Integer Sign Confusion(signed/unsigned integer mismatch)、任意核心記憶體寫入
  • 具體漏洞
  • AMD GPU:用戶可控偏移量直接用於計算核心記憶體位址,無輸入驗證
  • Display Matrix:OOB 讀寫,Apple 未提供該模組的 Kernel Debug Kit,逆向難度極高
  • Apple Intel ME:Type Confusion,分配 0x40 大小物件卻以更大結構體存取
  • Apple Intel GPU:`invalidContentKey` 函式對用戶提供的索引無任何檢查
  • AGX GPU 通知佇列:`createNotificationQ` 的 entry 數量與大小均無驗證,導致 OOB Write
  • AGX GPU 資源分配:初始 patch 未完整修復,研究者提交第二個 PoC 後才二次修補
  • DCP 韌體:signed integer 被當 unsigned 使用,條件檢查可被負數繞過;視訊介面無需任何權限即可直達 DCP
  • IO Mobile Frame Buffer 統計:過去 20 年共 16 個核心漏洞 CVE,其中 4 個被 APT 組織積極利用、2 個用於 iOS 越獄、1 個出現在安全競賽
  • 時間線關鍵點:2020 年重構 → 2020–2022 年漏洞爆增 → 安全社群反應滯後約 6 個月
  • 建議工具:靜態分析工具(signed/unsigned 比較警告可自動偵測)、動態模糊測試(自製 DCP fuzzer)
  • 參考資源:Asahi Linux M1 project DCP 逆向分析、Apple Graphics Accelerator 前人研究部落格

結論

結論

Apple 圖形子系統的防禦深度只是「提高門檻」而非「消除問題」,只要讀懂層間通訊協定,每一層都還有可挖掘的漏洞。

完整解析

詳細

本場演講由微軟的 Wayon Chen 代替原作者 Wong 上台發表。Wong 因簽證問題無法出席,但全部研究成果均由 Wong 獨立完成。Chen 在開場便點明核心結論:Apple 圖形子系統是尋找 zero-day 漏洞的優質切入點,因為它龐大到不可能做到完美。

研究首先從核心驅動層展開。針對 AMD GPU 的 kernel extension,研究者發現某函式對用戶提供的偏移量完全不做驗證,該偏移量直接用於計算核心記憶體位址,可被用戶完全控制,觀察崩潰時寄存器 RCX 存有 magic value 即為佐證。Display Matrix 模組同樣存在 OOB 讀寫問題,且因 Apple 未提供 Kernel Debug Kit,所有符號名稱均缺失,逆向工程耗費大量精力。Apple Intel ME Client Controller 模組則有一個 Type Confusion 漏洞:正常情況下應分配 0x40 大小的物件,但一個有問題的分支將其當作更大結構體處理,導致越界記憶體存取。此外,Apple Intel GPU 模組中的 `invalidContentKey` 函式對用戶傳入的索引參數毫無檢查,同樣可被控制用於任意記憶體寫入。值得一提的是,其中某個漏洞在去年 10 月提交後要等到今年秋天才修復,研究團隊推測該模組正在進行大規模重構。

接著研究轉向 Apple 自家 AGX GPU。在 GPU 通知佇列機制中,`createNotificationQ` 接受用戶傳入的 entry 數量與大小參數,均無充分驗證,導致 OOB Write。研究者特別強調,PoC 初版送給 Apple 後被描述為「Denial of Service」,但研究者認為若精心構造 PoC,此漏洞完全是可利用的 OOB Write primitive,因此堅持與 Apple 溝通修正 CVE 描述,避免誤導社群。GPU 資源分配函式的另一個漏洞同樣經歷了一波三折:研究者成功操控 x8、x9 寄存器指向有效核心位址來證明可利用性,Apple 初版 patch 卻只修復了 PoC 中涵蓋的特定情境,研究者隨後提交另一個能繞過 patch 的 PoC,Apple 才進行二次修補。

IO Mobile Frame Buffer 是本場另一個重點模組,因可從瀏覽器沙盒直接存取,歷來是攻防雙方激烈競爭的戰場。統計顯示 20 年間共有 16 個 CVE,其中 4 個被 APT 組織實際利用。2020 年的大規模重構雖出發點良好,卻引入大量新漏洞,導致 2020 至 2022 年間 CVE 數量暴增。Apple 的應對策略是將部分核心函式實作下移到 Display Co-Processor(DCP)韌體層,讓用戶模式無法直接觸及,形成一定程度的縱深防禦。然而研究者發現,DCP 韌體本身同樣存在漏洞——例如一個 signed/unsigned integer 混用導致的 OOB 寫入,只需傳入負數索引即可繞過邊界檢查,且無需任何權限或 entitlement 即可觸發。有趣的是,不同 macOS 版本對此漏洞給出了兩種不同修復方式,推測是不同團隊維護同一模組所致。研究者更透過自製 fuzzer 針對 DCP 的 antibody IPC 通訊機制進行模糊測試,觸發大量崩潰,並透過直接讀取記憶體的方式收集韌體崩潰報告。其中一個視訊介面漏洞已獲 Apple 確認,影響最新版 iOS 與 macOS,目前因攻擊面尚未完全修復,無法公開更多細節。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。