
ANE exploit de lecture/écriture du noyau pour iOS 15 et macOS 12
WeightBufs est un exploit de lecture/écriture du noyau pour tous les appareils Apple avec prise en charge du Neural Engine.
Bugs et exploit par @simo36, vous pouvez consulter mes slides de présentation au POC pour plus de détails sur les vulnérabilités et les techniques d'exploitation.
L'exploit ne repose sur aucune adresse ni décalage codé en dur, et il devrait fonctionner tel quel sur macOS12 jusqu'à 12.4 et *OS 15 jusqu'à 15.5.
Les vulnérabilités du noyau affectent toutes les versions d'iOS 15 (jusqu'à 16.0), cependant l'évasion du sandbox a été corrigée sur iOS 15.6. Par conséquent, casser la chaîne d'exploitation et une autre évasion du sandbox sont nécessaires pour que les choses fonctionnent à nouveau sur iOS 15.6/15.7. Bien que j'aie une autre évasion du sandbox qui fonctionne jusqu'à iOS 16.1, je ne suis pas sûr que les techniques d'exploitation du noyau soient encore utilisables sur iOS 15.6+.
L'exploit enchaîne 4 vulnérabilités que j'ai découvertes indépendamment et signalées à Apple :
CVE-2022-32845 : contournement de la vérification de signature aned pour model.hwx.CVE-2022-32948 : DeCxt::FileIndexToWeight() lecture hors limites (OOB Read) en raison de l'absence de validation de l'index du tableau.CVE-2022-42805 : ZinComputeProgramUpdateMutables() lecture arbitraire potentielle en raison d'un problème de débordement d'entier.CVE-2022-32899 : DeCxt::RasterizeScaleBiasData() sous-dépassement de tampon (Buffer underflow) en raison d'un problème de débordement d'entier.Certaines situations peuvent faire échouer l'exploit :
MUTK, cependant l'exploit détecte l'échec rapidement, empêchant l'appareil de planter. Il suffit de relancer l'exploit et il devrait réussir à la deuxième tentative.DEBUG_EXPLOIT_STAGE_2_KERN_PANIC et DEBUG_EXPLOIT_STAGE_3_KERN_PANIC pour plus de détails.WeightBufs inclut les fichiers d'en-tête du framework AppleNeuralEngine générés par Elias Limneos via classdump-dyld 1.0.
WeightBufs est publié sous la licence MIT.