Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-20687-AppleJPEGDriver-UAF — CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — iOS/macOS kernel vulnerability leading to deferred panic (A19 Pro, iOS 26.3 RC) | Kitploit
工具/GitHubGitHub/0xjohnnydev/cve-2026-20687-applejpegdriver-uaf
iOS SecurityVulnerability AnalysisExploitationMobile SecurityBinary Exploitation
GitHub0xjohnnydev/cve-2026-20687-applejpegdriver-uaf

CVE-2026-20687-AppleJPEGDriver-UAF

CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — iOS/macOS kernel vulnerability leading to deferred panic (A19 Pro, iOS 26.3 RC)

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站
2141319天前Kitploit 审核通过
内容在请求的语言中不可用。显示英文版本。

CVE-2026-20687: AppleJPEGDriver startDecoder() Timeout UAF (deferred panic)

CVE-2026-20687 | Author: Johnny Franks (@0xjohnny)

Component: Kernel

Impact: An app may be able to cause unexpected system termination or write kernel memory

Description: A use after free issue was addressed with improved memory management.

— Apple Security Content, iOS 26.4 and iPadOS 26.4

This will kernel panic your device. Save your work.

Tested on iOS 26.3 (23D125) on iPhone18,2 (iPhone 17 Pro Max, A19 Pro).

Trigger

Direct trigger:

  1. Run the PoC and tap Panic (primes the driver / queues async work).
  2. Then open Camera (this reliably causes a sync JPEG decode + timeout on the affected build).
  3. The timeout path frees a request but leaves its embedded queue node pointer in the per-codec vector.
  4. A later queue walk dereferences the stale node and the kernel panics (MTE tag check fault).
root@kitploit:~
// PoC: primes the driver; panic is usually deferred until Camera is opened.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
  startDecoder_async();                   // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);

// Later, opening Camera triggers:
startDecoder_sync();
  queue_io_gated(): vector.push(req + 0x78);
  wait(10s) -> TIMEOUT;
  pool_free(req);                         // BUG: does NOT dequeue (req + 0x78)

// Later still (finish_io_gated):
fullSpeedRequestExist():
  node_ptr = vector[i];                   // stale: node_ptr == (freed req + 0x78)
  req2 = *(node_ptr + 0x8);              // UAF read of req+0x80 -> MTE tag fault -> panic

Build & Run

  1. Open ios-app/Test.xcodeproj in Xcode
  2. Select your iOS device (simulator is not useful)
  3. Build and run
  4. Tap the Panic button
  5. Open the Camera app to trigger the deferred panic
下载工具