
ANE kernel r/w exploit para iOS 15 y macOS 12.
WeightBufs es un exploit de lectura/escritura del kernel para todos los dispositivos Apple con soporte de Neural Engine.
Errores y exploit por @simo36; puedes leer mis diapositivas de la presentación en POC para más detalles sobre las vulnerabilidades y las técnicas de explotación.
El exploit no depende de ninguna dirección u offset fijo, y debería funcionar TAL CUAL en macOS12 hasta 12.4 y *OS 15 hasta 15.5.
Las vulnerabilidades del kernel afectan a todas las versiones de iOS 15 (hasta 16.0); sin embargo, la evasión del sandbox fue corregida en iOS 15.6. Como resultado, romper la cadena del exploit y otra evasión del sandbox son necesarios para que las cosas vuelvan a funcionar en iOS 15.6/15.7. Aunque tengo otra evasión del sandbox que funciona hasta iOS 16.1, no estoy seguro de si las técnicas de explotación del kernel siguen siendo utilizables en iOS 15.6+.
El exploit encadena 4 vulnerabilidades que descubrí de forma independiente y reporté a Apple:
CVE-2022-32845 : bypass de verificación de firma de aned para model.hwx.CVE-2022-32948 : lectura OOB en DeCxt::FileIndexToWeight() debido a la falta de validación del índice de la matriz.CVE-2022-42805 : posible lectura arbitraria en ZinComputeProgramUpdateMutables() debido a un problema de desbordamiento de enteros.CVE-2022-32899 : underflow de búfer en DeCxt::RasterizeScaleBiasData() debido a un problema de desbordamiento de enteros.Hay algunas situaciones en las que el exploit puede fallar:
MUTK; sin embargo, el exploit detecta el fallo de forma temprana, evitando que el dispositivo se bloquee. Es suficiente con ejecutar el exploit de nuevo y debería tener éxito en el segundo intento.DEBUG_EXPLOIT_STAGE_2_KERN_PANIC y DEBUG_EXPLOIT_STAGE_3_KERN_PANIC para más detalles.WeightBufs incluye archivos de cabecera del framework AppleNeuralEngine generados por Elias Limneos mediante classdump-dyld 1.0.
WeightBufs se publica bajo la licencia MIT.