Vulnerabilidades Zero-Day en la App Mail de iOS permitirían la ejecución remota de código

Recientemente se han descubierto 2 vulnerabilidades Zero-Day en la App Mail de iOS, las mismas existen desde las versiones 6 de iOS hasta la última versión (13.4.4). Ambos fallos ocurren debido a un error en la implementación de MFMutableData perteneciente a la librería MIME, la primera vulnerabilidad trata de un fallo de verificación de error en la función ftruncate(), lo que significa que en ciertas condiciones la función no podrá truncar de manera correcta el archivo y retornará un código de error, esta misma función es invocada desde la llamada _flushToDisk, la cual seguirá ejecutándose a pesar de este error, causando un fallo conocido como «escritura fuera de límites de memoria».

Por otro lado, la segunda vulnerabilidad «heap overflow» reside en la función _mapMutableData (también perteneciente a la implementación MFMutableData). Dicha función, al recibir un correo crea un objeto NSMutableData, estableciendo un límite de bytes, en caso de que estos límites sean superados los datos se escriben en un archivo para luego usar la llamada al sistema mmap, este límite de bytes puede ser excedido fácilmente y como consecuencia los nuevos datos necesitan ser agregados y reasignados al archivo, causando un aumento de su tamaño continuamente, y derivando en un heap overflow cuando los datos son copiados en memoria.

Un atacante podría enviar correos electrónicos especialmente diseñados para hacer uso de una gran cantidad de memoria RAM del dispositivo través de la aplicación Mail, ejecutar código malicioso, filtrar, modificar y eliminar correos electrónicos personales. En MobileMail para iOS 12 todo esto suele conllevar a un cierre repentino de la aplicación, en cambio en Mail para iOS 13 esto podría ralentizar la aplicación.

Ambas vulnerabilidades son activadas cuando la víctima accede al contenido del correo, sin embargo, la vulnerabilidad de heap overflow podría ser explotada con un Zero-Click (Sin necesidad de una interacción con el usuario) en iOS 13, siempre y cuando la aplicación está activa en segundo plano, mientras que en iOS 12 el Zero-Click se da únicamente cuando el atacante tiene control sobre el servidor de la aplicación, caso contrario es necesario que la víctima ingrese al correo.

Los ataques fallidos pueden pasar desapercibidos en iOS 13, ya que el atacante puede hacer, que los correos se muestren como «sin contenido» o con «formato desconocido».

Recomendaciones:

  • Estas vulnerabilidades fueron abordadas en la versión beta de iOS 13.4.5, por lo que se recomienda la actualización a dicha versión, una vez se encuentre disponible para todo público.
  • Como medida alternativa, se recomienda cerrar sesión en la aplicación Mail y no utilizarla hasta que la actualización mencionada anteriormente sea aplicada, temporalmente puede utilizar otras aplicaciones de correo, como Gmail u Outlook para iOS.

Referencias:

Compartir: