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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-64747 — Analyse des causes profondes et PoC d’atteignabilité pour CVE-2026-64747, un débordement de tampon dans l’extension noyau AppleAVE2. Inclut le protocole filaire IOKit rétro-ingénierié, les calculs de débordement, et un PoC en espace utilisateur pilotant le chemin de configuration. | Kitploit
Outils/GitHubGitHub/eddinos2/cve-2026-64747
Frameworks d'ExploitationAnalyse des VulnérabilitésExploitationRétro-ingénierieSécurité MatérielleExploitation de Binaires
GitHubeddinos2/cve-2026-64747

CVE-2026-64747

Voir le dépôt
20il y a 21 joursPas encore vérifié

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 →

À propos

Analyse des causes profondes et PoC d’atteignabilité pour CVE-2026-64747, un débordement de tampon dans l’extension noyau AppleAVE2. Inclut le protocole filaire IOKit rétro-ingénierié, les calculs de débordement, et un PoC en espace utilisateur pilotant le chemin de configuration.

Partager

CVE-2026-64747 — Pilote noyau AppleAVE2 : format filaire + PoC d'atteignabilité

Analyse de cause racine et preuve de concept d'atteignabilité macOS pour CVE-2026-64747, un débordement de tampon dans l'extension noyau de l'encodeur vidéo AppleAVE2 (com.apple.driver.AppleAVE2) corrigé dans macOS 26.6 (kext 905.40.1).

AppleAVE2 — Impact : une application peut être en mesure d'exécuter du code arbitraire avec les privilèges du noyau. Un débordement de tampon dans le calcul de la taille du tampon de travail de l'encodeur a été corrigé grâce à une vérification améliorée des limites.

Ce dépôt documente le protocole filaire IOKit entièrement rétro-ingénieré de AppleAVE2UserClient (création de session → configuration → traitement par image), le site exact du débordement (un calculateur de taille de tampon de travail LRB 32 bits dans le chemin multipasse HEVC 10 bits), ainsi qu'un PoC espace utilisateur qui ouvre le user client, pilote le chemin de configuration à travers la pile de validation du noyau et démontre la différence entre les versions vulnérable (905.36.1) et corrigée (905.40.1).

Niveau (honnête) : atteignabilité + RE complète du protocole + mathématiques de débordement prouvées analytiquement. Pas d'exécution de code, aucun débordement en direct démontré — l'hôte de laboratoire exécute le kext corrigé, et une barrière de capacité matérielle (présente dans les deux versions) rejette les dimensions débordantes avant que le calculateur vulnérable ne s'exécute. Déclencher le débordement nécessite une cible dont la table de capacités admet les dimensions requises (voir FIRE_READY.md §5-6).

Contenu

fichierdescription
poc_ave2_reach.cPoC espace utilisateur IOKit : ouvre AppleAVE2UserClient, crée une session, pilote la configuration avec les structures rétro-ingéniérées. Aucune entitlement requise.
ave2_wire.hLe format filaire rétro-ingéniéré : numéros de sélecteurs, tailles de structures et chaque décalage de champ pertinent (largeur/hauteur, encType, vues/couches, chroma, profondeur de bits)
WIRE_FORMAT.mdRéférence du format filaire : disposition de la table de dispatch, particularité PAC, contrats par sélecteur
FIRE_READY.mdLes mathématiques du débordement (calculateur LRB mode-5), l'entrée exacte pour le déclencher, les preuves d'exécution sur hôte corrigé et les inconnues restantes
evidence/Capture ioreg + journaux du noyau issus des exécutions sur hôte corrigé (progression de la pile de validation)

Compilation et exécution

root@kitploit:~
clang -O0 -g -arch arm64 -framework IOKit -framework CoreFoundation \
      -o poc_ave2_reach poc_ave2_reach.c
./poc_ave2_reach        # root non requis ; le service s'ouvre depuis le contexte utilisateur

Le bug en un paragraphe

L'encodeur d'AppleAVE2 calcule la taille d'un tampon de travail LRB (tampon de référence lookaside) avec une arithmétique 32 bits et sans vérification de débordement. Dans le chemin multipasse HEVC 10 bits (calculateur invoqué avec param_2 = 5), des dimensions telles que 64656×8080 (qui passent la limite w*h ≤ 0x1FFE0000 du pilote) font que la somme des composants atteint 0x80000000 — bit de signe défini. Le calculateur vulnérable renvoie la somme 32 bits brute ; la taille est traitée comme négative en aval, un tampon DART/IOMMU sous-dimensionné est alloué, et la DMA de l'encodeur écrit au-delà de celui-ci → corruption du tas du noyau/DART → exécution de code noyau. Le calculateur corrigé ajoute des vérifications de signe par composant et une vérification de somme 64 bits et journalise LRB size overflow.

Principaux résultats de la rétro-ingénierie

  • Table de dispatch décodée depuis la section __const de la métaclasse (lignes de pas 0x18 = {func, inSize<<32, outSize<<32}, avec une particularité de pointeur PAC).
  • IOServiceOpen doit utiliser type=1 (type=0 → création rejetée).
  • sel1 = CREATE (structure de 0x920 octets : chaîne de version @+0x28, encType @+0x918), sel2 = DESTROY, sel4 = CONFIGURE (structure de 0x1a0a0 octets) = le point d'entrée de la CVE.
  • Largeur @ entrée de configuration +0xd90, hauteur +0xd94 ; la configuration doit passer par IOConnectCallAsyncStructMethod (le chemin synchrone est rejeté à la barrière IO_Config:337 avant la validation).
  • Progression complète de la pile de validation documentée sur l'hôte corrigé (exécutions 4-7) : barrière asynchrone → limite de dimensions → barrières iNumViews/iNumLayers → la barrière de capacité du périphérique qui bloque actuellement le débordement.

À des fins de recherche pédagogique et défensive. Le bug est corrigé dans macOS actuel ; testez uniquement sur du matériel que vous possédez.

Télécharger l’outil