Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-20687-AppleJPEGDriver-UAF — CVE-2026-20687: AppleJPEGDriver startDecoder タイムアウト UAF — 遅延パニックを引き起こす iOS/macOS カーネル脆弱性(A19 Pro、iOS 26.3 RC) | Kitploit
ツール/GitHubGitHub/enfilade-labs/cve-2026-20687-applejpegdriver-uaf
iOSセキュリティメモリフォレンジック脆弱性分析エクスプロイトリバースエンジニアリングモバイルセキュリティバイナリエクスプロイト
GitHubenfilade-labs/cve-2026-20687-applejpegdriver-uaf

CVE-2026-20687-AppleJPEGDriver-UAF

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-20687: AppleJPEGDriver startDecoder タイムアウト UAF — 遅延パニックを引き起こす iOS/macOS カーネル脆弱性(A19 Pro、iOS 26.3 RC)

リポジトリを見る
274ヶ月前未レビュー

CVE-2026-20687 — AppleJPEGDriver startDecoder タイムアウト UAF

CVE-2026-20687 · Enfilade · enfilade.io

コンポーネント: カーネル

影響: アプリが予期しないシステム終了を引き起こしたり、カーネルメモリに書き込んだりする可能性があります。

説明: メモリ管理の改善により、use after free の問題が解決されました。

— Apple セキュリティコンテンツ、iOS 26.4 および iPadOS 26.4

対象

iOS26.3 (23D125)(テスト済み)
macOS—
コンポーネントAppleJPEGDriver
パッチ適用iOS 26.4 / iPadOS 26.4
ハードウェアiPhone18,2(iPhone 17 Pro Max、A19 Pro)

警告

PoC を実行するとデバイスがカーネルパニックを起こします。実行前に作業を保存してください。パニックを繰り返すとファイルシステムが破損する可能性があります。セキュリティ研究目的のみに使用してください。

脆弱性

startDecoder_sync のタイムアウトパスはリクエストを解放しますが、埋め込まれたキュー・ノードポインタをコーデックごとのベクタに残します。その後のキュー走査が古いノードを逆参照し、MTE タグチェックの強制下でカーネルがパニックします。パニックは通常、後続の同期 JPEG デコードが実行されるまで延期されます。iPhone では、これはカメラアプリが開かれたときに確実に発生します。

概念実証

root@kitploit:~
// ドライバを準備します。パニックは通常、カメラが開かれるまで延期されます。
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
    startDecoder_async();                   // queue_io_gated: vector.push(req + 0x78)
}
IOServiceClose(conn);

// その後、カメラを開くと以下がトリガーされます:
startDecoder_sync();
    queue_io_gated: vector.push(req + 0x78);
    wait(10s) -> TIMEOUT;
    pool_free(req);                         // BUG: (req + 0x78) をデキューしない

// さらに後(finish_io_gated):
fullSpeedRequestExist():
    node_ptr = vector[i];                   // 古い: node_ptr == (解放済み req + 0x78)
    req2 = *(node_ptr + 0x8);               // UAF 読み取り -> MTE タグフォルト -> パニック

ビルドと実行

  1. Xcode で ios-app/Test.xcodeproj を開きます。
  2. 物理 iOS デバイスを選択します(シミュレータではドライバに到達できません)。
  3. ビルドして実行し、Panic をタップします(ドライバを準備し、非同期処理をキューに入れます)。
  4. カメラ アプリを開いて、延期されたパニックをトリガーします。

ライセンス

LICENSE を参照してください。

ツールをダウンロード