
CVE-2026-84616 및 CVE-2026-84607의 버그 발견과 수정에 관한 연구
[!IMPORTANT] 이 저장소는 AI 에이전트의 연구 지원을 받았습니다
[!NOTE]
공개 연구
기여를 환영합니다
iOS 27.0 권고 149034, 구성 요소 AVEVideoEncoder: "샌드박스된 앱이 커널 권한으로 임의 코드를 실행할 수 있음" — "경쟁 조건이 개선된 상태 관리로 해결되었습니다." 이 글은 수정이 어디에 있는지, 그리고 무엇을 하는지를 다룹니다.
답: com.apple.driver.AppleAVE2에 새로 추가된 프레임별 상태 일관성 가드로,
클라이언트의 eEncType을 세션의 sEnc.eType과 비교하여 불일치 시 프레임을 우회시킵니다.
검사되는 필드는 락 프리(lock-free) 체인에 의해 기록됩니다 — 락에 의한 수정이 아니라 검증에 의한 수정입니다.
수정은 GM에 적용된 것이 아닙니다. iOS 27.0 주기의 베타 2 → 베타 4 단계에서 적용되었습니다:
0xfffffff008734d14 ldr w8, [x22, #0x58] ; client eEncType
0xfffffff008734d18 ldr w9, [x19, #0x270] ; session sEnc.eType
0xfffffff008734d1c cmp w8, w9 ; the new state-consistency guard
0xfffffff008734d20 b.ne → divert ; mismatch NEVER reaches frame processing
EncType mismatch with session — 베타 2에는 없고, 베타 4부터 존재.sub_fffffff008733654를 호출함.0xfffffff008737f98)를 가지며, 그 기록자 체인(2단계, 간접 디스패치에서 종료)은
어떤 락 헬퍼도 호출하지 않음 — 판독자와 기록자가 서로 다른 락 도메인에 존재함.b2→b4 스윕은 또한 AVE_CalcBufSizeOf* 버퍼 크기 계산기 계열(픽셀 영역, DPB, LRB, HSC/MCTF 출력, …)에
약 22개의 정수 오버플로 가드를 추가했습니다:
ave.videoencoder / AppleVideoEncoder.bundle은 해당 기간에 걸쳐
디프되지 않았음 (수정 전 사본은 베타 dyld 공유 캐시에 존재).[!NOTE]
면책 조항
모든 주장은 검증 가능한 아티팩트를 인용합니다; 신뢰하기 전에 재검증하십시오. 익스플로잇 코드는 포함되지 않았습니다. 수정은 iOS 27.0 (24A435)에 이미 출시되었습니다 — 이 저장소는 이미 패치된 코드를 문서화합니다. 교육 목적으로만 사용하십시오. 익스플로잇 코드 없음.
| 단계 | 변경 사항 |
|---|
b8 → GM 24A435 | BTI만 해당 (+0x2168 __text 증가 = 2148개의 새 bti 명령어; 기능적으로 −40 바이트) |
| b1 → GM | 실제 코드 +7463 명령어 — 베타 주기가 작업을 수행함 |
| b2 → b4 | 수정 단계: +68개의 새 문자열 = 커널 메모리 강화 스윕 + 하나의 새로운 상태 검사 |
| b4 → b5 | MCTF 기능 작업만 해당 |