
pesquisa sobre como encontrar o bug e a correção do CVE-2026-84616 e do CVE-2026-84607
[!IMPORTANT] Este repositório é assistido por agentes de IA para pesquisa
[!NOTE]
Pesquisa Aberta
Contribuições são bem-vindas
Aviso 149034 do iOS 27.0, componente AVEVideoEncoder: "Um app em sandbox pode ser capaz de executar código arbitrário com privilégios de kernel" — "uma condição de corrida foi tratada com gerenciamento de estado aprimorado." Este writeup: onde a correção está e o que ela faz.
Resposta: uma nova proteção de consistência de estado por frame em com.apple.driver.AppleAVE2 que
compara o eEncType do cliente com o sEnc.eType da sessão e desvia o frame
em caso de incompatibilidade. O campo verificado é escrito por uma cadeia sem locks — correção por validação, não por lock.
A correção não chegou na GM. Ela chegou na etapa beta 2 → beta 4 do ciclo do iOS 27.0:
| etapa | o que mudou |
|---|---|
b8 → GM 24A435 | Apenas BTI (o crescimento de __text em +0x2168 = 2148 novas instruções bti; −40 bytes funcionais) |
| b1 → GM | +7463 instruções de código real — o ciclo beta fez o trabalho |
| b2 → b4 | a etapa da correção: +68 novas strings = varredura de endurecimento de memória do kernel + a nova verificação de estado |
| b4 → b5 | Apenas trabalho na funcionalidade MCTF |
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 — ausente na beta 2, presente a partir da beta 4.sub_fffffff008733654.0xfffffff008737f98), e sua cadeia de escrita (2 níveis, termina em despacho indireto) não chama
nenhum helper de lock — leitor e escritor vivem em domínios de lock diferentes.A varredura b2→b4 também adicionou ~22 proteções de estouro de inteiro na família de
calculadoras de tamanho de buffer AVE_CalcBufSizeOf* (área de pixel, DPB, LRB, saída HSC/MCTF, …):
ave.videoencoder / AppleVideoEncoder.bundle de userspace não foi diferenciado ao longo
da janela (cópias pré-correção vivem nos caches compartilhados dyld das betas).[!NOTE]
Aviso Legal
Todas as afirmações citam artefatos verificáveis; re-verifique antes de confiar em qualquer uma delas. Nenhum código de exploit está incluído. A correção foi enviada no iOS 27.0 (24A435) — este repositório documenta código já corrigido. use apenas para fins educacionais. Nenhum código de exploit.