
Pacote de pesquisa que demonstra uma cadeia ROP assistida por vazamento no media.swcodec do Android por meio do heap overflow do decodificador APV da CVE-2026-0006, com gerador de payload e evidências de tombstone.
Pacote de pesquisa pequeno e autocontido para CVE-2026-0006 (estouro de heap no decodificador APV).
Ele demonstra uma chamada nativa controlada em media.swcodec, terminando em
__android_log_assert(NULL, NULL, "RCE-7F3A92C1") com o nonce visível em um
tombstone real (Abort message: 'RCE-7F3A92C1').
Requisitos: Pixel 9 com root (/debug_ramdisk/su), adb, Python 3.12 com NumPy.
O dispositivo deve usar o libobs.so original (sem sobreposição de instrumentação).
scripts/build_device.sh # instala thumb3.dex e apvscan
scripts/run.sh 12 # até 12 tentativas novas
O sucesso imprime RCE PROVATA e grava out/APVRCE_success.txt.
artifacts/tombstone_rce.txt é a captura de sucesso da execução de referência.
media.swcodec novo decodifica CLEAN_MSG.mp4 (metadados carregando o nonce).apvscan) deriva os valores ao vivo:
release@448 - 0x29044 → base do codec;GOT[malloc] @ codec+0x2d448 → malloc@libc+0x596f0 → base da libc.gen/gen_forge.py monta o payload de combinação APV:
release@448 = libc + 0xede9c (__libunwind_Registers_arm64_jumpto);PC = liblog + 0xc250 (__android_log_assert);x0=x1=0, x2 = endereço dos metadados carregando RCE-7F3A92C1`;SP aponta para um plano válido.JT_LOG.mp4. O release forjado chega a jumpto,
que restaura os registradores e faz a chamada controlada de log/assert.Esta é uma demonstração de ROP ponta a ponta no processo alvo, não evidência apenas de PC/SP.
apvscan como oráculo de vazamento somente leitura para release e as duas
leituras de GOT. O vazamento de saída hdr10-plus-info foi validado separadamente nas notas de pesquisa;
o executor não afirma que o arquivo sozinho exfiltra esses valores para uma parte remota.media.swcodec, não uma fuga de sandbox ou LPE de kernel.artifacts/JT_LOG.mp4 é evidência específica de ponteiro/layout. Regenere-o a cada execução; não
espere que seja universal.scripts/pipeline_logprint.py — vazamento/oráculo, geração, ataque e captura de evidências.scripts/build_device.sh — instala os arquivos de runtime no dispositivo.scripts/run.sh — inicia a cadeia completa.gen/ — gerador de payload e fonte/dex do Thumb3.scanner/ — fonte do apvscan e binário arm64 pré-compilado.artifacts/ — MP4s de referência e o tombstone bem-sucedido.docs/ — rascunhos de blog em inglês e italiano mais offsets específicos da build.O pacote demonstra uma chamada nativa controlada em media.swcodec, não apenas o
controle de PC/SP. O caminho é: decoder fresco → derivação dos endereços →
jumpto → __android_log_assert com o nonce RCE-7F3A92C1 no tombstone.
Não é uma demonstração zero-click nem um escape do sandbox: é uma prova ROP no processo
codec, com os limites e o modelo de ameaça descritos acima.