CVE-2026-28992 IOHIDFamily FastPathUserClient 竞态条件 PoC — 安全研究
安全研究仓库。两个PoC应用演示了 IOHIDFamily 的 FastPathUserClient 在 iOS 18.7.1 及更早版本上的竞态条件。
⚠️ 两个PoC都会导致内核恐慌并重启你的设备。请先保存你的工作。
| 字段 | 详情 |
|---|---|
| CVE | CVE-2026-28992 |
| 组件 | IOHIDFamily — IOHIDEventServiceFastPathUserClient |
| 类型 | 内存损坏(竞态条件 / UAF) |
| 可达性 | 普通应用沙盒,无需任何权限 |
| 修复版本 | iOS 18.7.9 / iOS 26.5 |
| 发现者 | Johnny Franks (@zeroxjf) |
sel0(打开/门控)在 调用者提供的 OSDictionary 中检查 FastPathHasEntitlement 和 FastPathMotionEventEntitlement,而非在 initWithTask 期间存储的权限标志。沙盒应用通过在输入字典中包含这些键来通过门控。
由此产生两个攻击向量:
UAFPoc/UAFPoc.xcodeproj
竞态: close(sel1)在不加锁的情况下释放提供者状态并清除偏移 +0x109。copyEvent(sel2)在每连接锁下检查偏移 +0x108,然后调用提供者。多个连接指向同一个提供者意味着 close 和 copyEvent 在 不同的锁定域 中对同一共享提供者侧对象进行操作。
崩溃类型:
AOPPanicPoc/AOPPanicPoc.xcodeproj
竞态: mach_port_destroy 触发异步 didTerminate → teardown,与同时在其他连接上进行的 sel0 打开路径不同步。Teardown 释放提供者侧状态,而打开者线程仍在遍历它。同时使 SPU 支持的提供者邮箱饱和 → AOP 看门狗超时。
git clone https://github.com/clogan9019-dotcom/IOHIDFamily-PoC-Research.git
cd IOHIDFamily-PoC-Research
UAF 变体:
UAFPoc/UAFPoc.xcodeprojAOP 变体:
AOPPanicPoc/AOPPanicPoc.xcodeproj设备重启后:
Panic 日志(.ips 文件)panic-logs/ 目录并提交用于分析或者通过终端:
# 重启后,拉取日志
idevicecrashreport -u <UDID> ./panic-logs/
在 A18(iPhone 16e) 上你应该会看到以下之一:
MTE tag check fault — UAF 变体释放并重新分配了带标签的堆对象AOP watchdog timeout — AOP 变体使 SPU 邮箱饱和需注意的关键字段:
Kernel version: Darwin Kernel Version ...
Hardware Model: iPhone17,5
panic(cpu N ...): <实际的崩溃字符串>
Backtrace:
... IOHIDEventServiceFastPathUserClient ...
回溯中的函数名会精确告诉你哪个代码路径触发了崩溃。
| 日期 | 事件 |
|---|---|
| 未知 | Johnny Franks (@zeroxjf) 发现漏洞 |
| 2026年5月11日 | 在 iOS 18.7.9 / iOS 26.5 中修复 |
| 2026年6月21日 | 公开 PoC 代码 |
未修复的变体或相关漏洞可在此处报告: https://security.apple.com/submit
对于内核漏洞:请描述组件、复现步骤、崩溃类型,并附上 .ips 崩溃日志。
| CVE | 组件 | 18.7.1 状态 |
|---|---|---|
| CVE-2025-43510 | AppleM2ScalerCSCDriver (DarkSword Stage 5) | 未修复(已在 18.7.2 中修复) |
| CVE-2026-28992 | IOHIDFamily FastPathUserClient | 未修复(已在 18.7.9 中修复) |
| CVE-2026-43655 | AppleM2ScalerCSCDriver OOB read | 未修复且从未向后移植到 18.x |
| CVE-2026-20687 | Kernel UAF → write kernel memory | 未修复(已在 18.7.7 中修复) |
仅用于教育和负责任的披露目的。