lunes, 28 de agosto de 2017

ziVA: un exploit que permite elevar privilegios en dispositivos iOS

El analista de seguridad Adam Donenfeld (@doadam) del grupo Zimperium ha publicado recientemente un exploit que afecta a los dispositivos iPhone con versiones de iOS 10.3.1 y anteriores. El exploit permite elevar privilegios a root y hacer jailbreak del dispositivo.



El exploit aprovecha diversas vulnerabilidades de corrupción de memoria que afectan a las extensiones del kernel 'AppleAVE.kext' y 'IOSurface.kext':

Errores de corrupción de memoria en AVEVideoEncoder:


  • CVE-2017-6989: Permitiría borrar las referencias a los objetos de tipo IOSurface en el kernel.
  • CVE-2017-6994: Revela información sobre las direcciones de memoria de los objetos IOSurface en el kernel.
  • CVE-2017-6995: Permite apuntar a un puntero arbitrario como si se tratara de un objeto IOSurface válido.
  • CVE-2017-6996: Permite liberar cualquier bloque de memoria de 0x28.
  • CVE-2017-6997: Permite liberar cualquier puntero de 0x28.
  • CVE-2017-6998: Confusión de tipos que permitiría secuestrar una ejecución de código en el kernel.
  • CVE-2017-6999: Permitiría poner a null un puntero controlado por el usuario.

Condición de carrera en IOSurface:


  • CVE-2017-6979: Condición de carrera que permitiría ejecutar código arbitrario en el contexto del kernel.

Ha sido publicada una prueba de concepto que hace uso de estos fallos para escapar del sandbox y ejecutar código arbitrario: https://github.com/doadam/ziVA

Estas vulnerabilidades ya fueron parcheadas en la versión iOS 10.3.2 publicada en mayo de este año. Por lo que se recomienda actualizar en caso de que no se haya hecho todavía.


Francisco Salido

Más información

Boletín oficial de Apple
https://support.apple.com/en-us/HT207798

Código fuente del exploit
https://github.com/doadam/ziVA