![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeVci3gWW0s8-EW2SbNheyk06pnSyvX6Mm183VMV1UyA1-eSSwGwo9tx8RfeXoIekZ9zixvXlkmc5HFDbcBLGQfiVN8vBCt2t5Z8iGuJTh_nUHQL_hyphenhyphenWbj3KwDetUYWC0XJfTPUb0S7mI/s200/bug.jpg)
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.
No hay comentarios:
Publicar un comentario