
CVE-2026-28992 IOHIDFamily FastPathUserClient 경합 조건 PoC — 보안 연구
보안 연구 저장소입니다. iOS 18.7.1 및 이전 버전에서 IOHIDFamily의 FastPathUserClient의 경쟁 조건을 보여주는 두 가지 PoC 앱입니다.
⚠️ 두 PoC 모두 커널 패닉을 일으키고 기기를 재부팅합니다. 먼저 작업을 저장하세요.
| 필드 | 세부 내용 |
|---|---|
| CVE | CVE-2026-28992 |
| 구성 요소 | IOHIDFamily — IOHIDEventServiceFastPathUserClient |
| 유형 | 메모리 손상 (경쟁 조건 / UAF) |
| 접근 가능 | 일반 앱 샌드박스, 자격 증명 필요 없음 |
| 패치 버전 | iOS 18.7.9 / iOS 26.5 |
| 연구자 | Johnny Franks (@zeroxjf) |
sel0(열기/게이트)는 initWithTask 동안 저장된 자격 플래그가 아닌 호출자가 제공한 OSDictionary에서 FastPathHasEntitlement와 FastPathMotionEventEntitlement를 확인합니다. 샌드박스 앱은 입력 딕셔너리에 해당 키를 포함시켜 게이트를 통과합니다.
여기서 두 가지 벡터가 이어집니다:
UAFPoc/UAFPoc.xcodeproj
경쟁: close(sel1)는 잠금 없이 공급자 상태를 해제하고 오프셋 +0x109를 지웁니다.
copyEvent(sel2)는 연결별 잠금 하에 오프셋 +0x108을 확인한 후 공급자를 호출합니다.
동일한 공급자에 대한 여러 연결은 close와 copyEvent가 동일한 공유 공급자 측 객체에서 서로 다른 잠금 도메인에서 실행됨을 의미합니다.
충돌 유형:
AOPPanicPoc/AOPPanicPoc.xcodeproj
경쟁: mach_port_destroy는 비동기 didTerminate → teardown을 트리거하며, 다른 연결의 동시 sel0 열기 경로와 동기화되지 않습니다. Teardown은 열기 스레드가 이를 반복하는 동안 공급자 측 상태를 해제합니다. 또한 SPU 기반 공급자의 메일박스를 포화시켜 AOP watchdog 시간 초과를 유발합니다.
git clone https://github.com/clogan9019-dotcom/IOHIDFamily-PoC-Research.git
cd IOHIDFamily-PoC-Research
UAF 변형:
UAFPoc/UAFPoc.xcodeproj 열기AOP 변형:
AOPPanicPoc/AOPPanicPoc.xcodeproj 열기기기가 재부팅된 후:
Panic 로그 (.ips 파일) 찾기panic-logs/에 저장하고 분석을 위해 커밋또는 터미널을 통해:
# After reboot, pull the log
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 ...): <the actual panic string>
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 읽기 | 미패치, 18.x로 백포트되지 않음 |
| CVE-2026-20687 | 커널 UAF → 커널 메모리 쓰기 | 미패치 (18.7.7에서 수정됨) |