
Paquete de investigación que demuestra una cadena ROP asistida por fuga en Android media.swcodec mediante el desbordamiento de heap del decodificador APV de CVE-2026-0006, con generador de payload y evidencia de tombstone.
Paquete de investigación pequeño y autocontenido para CVE-2026-0006 (desbordamiento de heap en el decodificador APV).
Demuestra una llamada nativa controlada en media.swcodec, que termina en
__android_log_assert(NULL, NULL, "RCE-7F3A92C1") con el nonce visible en un tombstone
real (Abort message: 'RCE-7F3A92C1').
Requisitos: Pixel 9 rooteado (/debug_ramdisk/su), adb, Python 3.12 con NumPy.
El dispositivo debe usar el libobs.so de fábrica (sin superposición de instrumentación).
scripts/build_device.sh # instala thumb3.dex y apvscan
scripts/run.sh 12 # hasta 12 intentos nuevos
Si tiene éxito, imprime RCE PROVATA y escribe out/APVRCE_success.txt.
artifacts/tombstone_rce.txt es la captura del éxito de la ejecución de referencia.
media.swcodec nuevo decodifica CLEAN_MSG.mp4 (metadatos que llevan el nonce).apvscan) deriva los valores en vivo:
release@448 - 0x29044 → base del códec;GOT[malloc] @ codec+0x2d448 → malloc@libc+0x596f0 → base de libc.gen/gen_forge.py construye el payload comb APV:
release@448 = libc + 0xede9c (__libunwind_Registers_arm64_jumpto);PC = liblog + 0xc250 (__android_log_assert);x0=x1=0, x2 = dirección de los metadatos que llevan RCE-7F3A92C1`;SP apunta a un plano válido.JT_LOG.mp4. El release falsificado llega a jumpto,
que restaura los registros y realiza la llamada log/assert controlada.Esta es una demostración ROP de extremo a extremo en el proceso objetivo, no una evidencia de solo PC/SP.
apvscan como oráculo de fuga de solo lectura para release y las dos lecturas
de GOT. La fuga de salida de hdr10-plus-info se validó por separado en las notas de investigación;
el runner no afirma que el archivo por sí solo exfiltre esos valores a un tercero remoto.media.swcodec, no un escape de sandbox ni un LPE de kernel.artifacts/JT_LOG.mp4 es evidencia específica de punteros/diseño. Regenéralo en cada ejecución; no
esperes que sea universal.scripts/pipeline_logprint.py — fuga/oráculo, generación, ataque y captura de evidencia.scripts/build_device.sh — instala los archivos de tiempo de ejecución en el dispositivo.scripts/run.sh — inicia la cadena completa.gen/ — generador de payload y fuente/dex de Thumb3.scanner/ — fuente de apvscan y binario arm64 precompilado.artifacts/ — MP4 de referencia y el tombstone exitoso.docs/ — borradores de blog en inglés e italiano más offsets específicos de la compilación.El paquete demuestra una llamada nativa controlada en media.swcodec, no solo el
control de PC/SP. La ruta es: decodificador fresco → derivación de las direcciones →
jumpto → __android_log_assert con el nonce RCE-7F3A92C1 en el tombstone.
No es una demostración zero-click ni un escape del sandbox: es una prueba ROP en el proceso
codec, con los límites y el modelo de amenaza descritos anteriormente.