Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-64747 — Análise de causa raiz e PoC de alcançabilidade para CVE-2026-64747, um estouro de buffer na extensão de kernel AppleAVE2. Inclui protocolo de fio IOKit revertido, matemática de estouro e um PoC em userspace que aciona o caminho de configuração. | Kitploit
Ferramentas/GitHubGitHub/eddinos2/cve-2026-64747
Frameworks de ExploraçãoAnálise de VulnerabilidadesExploraçãoEngenharia ReversaSegurança de HardwareExploração de Binários
GitHubeddinos2/cve-2026-64747

CVE-2026-64747

Análise de causa raiz e PoC de alcançabilidade para CVE-2026-64747, um estouro de buffer na extensão de kernel AppleAVE2. Inclui protocolo de fio IOKit revertido, matemática de estouro e um PoC em userspace que aciona o caminho de configuração.

Ver Repositório
há 1 diaAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-64747 — Driver de kernel AppleAVE2: formato de wire + PoC de alcançabilidade

Análise de causa-raiz e prova de conceito de alcançabilidade para macOS do CVE-2026-64747, um estouro de buffer na extensão de kernel do codificador de vídeo AppleAVE2 (com.apple.driver.AppleAVE2) corrigido no macOS 26.6 (kext 905.40.1).

AppleAVE2 — Impacto: um app pode ser capaz de executar código arbitrário com privilégios de kernel. Um estouro de buffer no cálculo do tamanho do buffer de trabalho do codificador foi resolvido com verificação de limites aprimorada.

Este repositório documenta o protocolo de wire IOKit totalmente revertido do AppleAVE2UserClient (criar sessão → configurar → processamento por quadro), o local exato do estouro (um calculador de tamanho de buffer de trabalho LRB de 32 bits no caminho multipass HEVC 10-bit), e um PoC em userspace que abre o user client, conduz o caminho de configuração pela pilha de validação do kernel e demonstra o diferencial entre builds vulnerável (905.36.1) e corrigido (905.40.1).

Nível (honesto): alcançabilidade + RE completo do protocolo + matemática de estouro comprovada analiticamente. Não é RCE, nenhum estouro ao vivo demonstrado — o host do laboratório executa o kext corrigido, e uma barreira de capacidade de hardware (presente em ambos os builds) rejeita as dimensões de estouro antes que o calculador vulnerável seja executado. Disparar o estouro exige um alvo cuja tabela de capacidades admita as dimensões necessárias (ver FIRE_READY.md §5-6).

Conteúdo

arquivoo quê
poc_ave2_reach.cPoC em userspace IOKit: abre AppleAVE2UserClient, cria uma sessão, conduz a configuração com as structs revertidas. Nenhuma entitlement necessária.
ave2_wire.hO formato de wire revertido: números de seletores, tamanhos de structs e cada deslocamento de campo que importa (largura/altura, encType, views/layers, chroma, profundidade de bits)
WIRE_FORMAT.mdReferência do formato de wire: layout da tabela de dispatch, peculiaridade PAC, contratos por seletor
FIRE_READY.mdA matemática do estouro (calculador LRB modo-5), a entrada exata para dispará-lo, evidências de execução no host corrigido e as incógnitas restantes
evidence/Captura do ioreg + logs do kernel das execuções no host corrigido (progressão da pilha de validação)

Build e execução

root@kitploit:~
clang -O0 -g -arch arm64 -framework IOKit -framework CoreFoundation \
      -o poc_ave2_reach poc_ave2_reach.c
./poc_ave2_reach        # root não é necessário; o serviço abre a partir do contexto do usuário

O bug em um parágrafo

O codificador do AppleAVE2 calcula um tamanho de buffer de trabalho LRB (lookaside reference buffer) com aritmética de 32 bits e sem verificação de estouro. No caminho multipass HEVC 10-bit (calculador invocado com param_2 = 5), dimensões como 64656×8080 (que passam pela restrição w*h ≤ 0x1FFE0000 do driver) fazem a soma de componentes 0x80000000 — bit de sinal definido. O calculador vulnerável retorna a soma nua de 32 bits; o tamanho é tratado como negativo a jusante, um buffer DART/IOMMU subdimensionado é alocado, e o DMA do codificador grava além dele → corrupção de heap/DART do kernel → execução de código no kernel. O calculador corrigido adiciona verificações de sinal por componente e uma verificação de soma de 64 bits e registra LRB size overflow.

Principais resultados da RE

  • Tabela de dispatch decodificada da seção __const da metaclasse (linhas de stride 0x18 = {func, inSize<<32, outSize<<32}, com uma peculiaridade de ponteiro PAC).
  • IOServiceOpen deve usar type=1 (type=0 → criação rejeitada).
  • sel1 = CREATE (struct de 0x920 bytes: string de versão @+0x28, encType @+0x918), sel2 = DESTROY, sel4 = CONFIGURE (struct de 0x1a0a0 bytes) = a entrada do CVE.
  • Largura @ entrada de configuração +0xd90, altura +0xd94; a configuração deve passar por IOConnectCallAsyncStructMethod (o caminho síncrono é rejeitado na barreira IO_Config:337 antes da validação).
  • Progressão completa da pilha de validação documentada no host corrigido (execuções 4-7): barreira assíncrona → restrição de dimensões → barreiras iNumViews/iNumLayers → a barreira de capacidade do dispositivo que atualmente bloqueia o estouro.

Para fins educacionais e de pesquisa defensiva. O bug está corrigido no macOS atual; teste apenas em hardware que você possui.

Baixar ferramenta