Noticia Reversing del bug en CoreText que crashea iOS y OSX

El último bug de CoreText que provoca un crash en todas las aplicaciones iOS y OS X con solo intentar renderizar cuatro caracteres en formato UTF-8 en arábico está siendo una molestia. Usuarios ponen esas cadenas en Twitter, en las firmas de correos electrónicos, en los HTTP Referers de las peticiones HTTP para aparecer en estadísticas de navegación o en campos USER-Agent. Todo con tal de divertirse un rato. Este bug parece ser que había aparecido tiempo ha en una charla en las conferencias Hack In The Box, por lo que no es tan nuevo.

En The Register han publicado un análisis en detalle del bug en CoreText. El problema radica en que el sistema de renderizado que usa Apple CoreText se basa en utilizar valores enteros con signo para intercambiar índices de arrays y longitudes de cadenas de texto. En este fallo, un valor negativo -1 se pasa sin haber sido correctamente controlado a una función de una librería que lo utiliza como un entero sin signo. Esto hace que sea tomado como una longitud de cadena demasiado larga que se sale de los límites del array que está preparado para se utilizado, causando un intento de lectura más allá del tamaño de la memoria reservada al array. Es decir, una lectura en una "unallocated memory", lo que genera la excepción fatal.


Figura 1: Reversing del bug en Apple CoreText

En el artículo podéis ver en detalle el análisis de ingeniería inversa para aquellos que disfruten de esta disciplina. Mientras tanto, esperamos que en la próxima actualización de los sistemas operativos de Apple esperados para la semana que viene sea solucionada. Este bug no existe en la última versión beta de iOS 7.

Publicado en Seguridad Apple - Google+ - RSS - Eleven Paths - El lado del mal




Continúar leyendo...