🔥Adquiere tu membresía:  acceso a todos los cursos, videos eliminados, contenidos protegidos, manuales y más. >> Ver Más

Vulnerabilidad en WhatsApp permitía acceder a datos privados al enviar una foto

Una vulnerabilidad en la función de retoque de imágenes de WhatsApp podría permitir a un atacante leer información confidencial de la memoria de WhatsApp. Por lo tanto, los usuarios deben tener cuidado de las fotos que ven y, por supuesto, deben actualizar sus aplicaciones.

La vulnerabilidad fue revelada por Check Point Research (CPR). Esta se puede aprovechar aplicando filtros de imagen específicos a una imagen especialmente diseñada (es decir, un archivo .GIF con formato incorrecto) y enviándola a un objetivo. Los filtros de imagen son, por supuesto, las herramientas de efectos visuales integradas en WhatsApp. Estas herramientas se utilizan para cambiar el color, la saturación, el tono, la nitidez y más de una foto tomada.

La vulnerabilidad (CVE-2020-1910) tiene una calificación de 7.8 sobre 10 en la escala de vulnerabilidad y gravedad de CVSS. Se debe a un error de corrupción de memoria, y ​​más específicamente a un problema de lectura y escritura. Normalmente, este tipo de vulnerabilidad puede permitir a los atacantes leer información confidencial de otras ubicaciones de memoria o provocar un bloqueo.

“CPR descubrió que cambiar entre varios filtros en archivos .GIF creados generó que WhatsApp fallara”.

Informe publicado el jueves

Lo importante de este problema es que, dado un conjunto de circunstancias muy singular y complicado, podría haber llevado a la exposición de información confidencial de la aplicación WhatsApp.

Análisis detallado de CVE-2020-1910

La vulnerabilidad existe en una función nativa llamada “applyFilterIntoBuffer ()” en la biblioteca libwhatsapp.so. Esta función puede ingresar tres objetos AndroidBitmap diferentes:

  • “Src_jbitmap”: representa la imagen de entrada.
  • “Flt_jbitmap”: representa el filtro que se aplicará.
  • “Dst_jbitmap”: contiene el resultado de la nueva imagen.

Por lo tanto, la función esencialmente observa los píxeles de la imagen de origen, calcula nuevos valores de píxeles aplicando el filtro y luego copia esos valores en el búfer de destino.

Función vulnerable

Para hacerlo, primero invoca a una función llamada “AndroidBitmap_getInfo” para obtener datos sobre la fuente y filtrar la imagen. Esto da como resultado una estructura llamada “AndroidBitmapInfo”. Esa estructura contiene datos sobre los parámetros de la imagen, incluido el ancho, la altura, el stride (número de bytes por fila), el formato y los indicadores.

Cada vez que se realiza esta acción, tanto el búfer de origen como el de destino avanzan por el valor del parámetro de altura de la imagen multiplicado por cuatro, que representa el tamaño de la columna en bytes.

El problema es que se supone que las imágenes de origen y de destino tienen las mismas dimensiones y también el mismo formato RGBA [valor de color]. Esto significa que cada píxel se almacena como cuatro bytes, de ahí la multiplicación por cuatro.  Sin embargo, no se realizan comprobaciones sobre el formato de las imágenes de origen y destino.

Por lo tanto, es posible crear una imagen de origen creada con fines malintencionados que tenga solo un byte por píxel. Dicha acción hará que la función vulnerable applyFilterIntoBuffer() intente leer y copiar cuatro veces la cantidad del búfer de imagen de origen asignado. Finalmente, esto conduce a una salida acceso a la memoria fuera de límites.

“Este es el bloqueo que tuvimos … causado por el programa que intenta leer desde una región de memoria no mapeada”, explicaron los investigadores.

¿Exploits en la práctica?

CPR no proporcionó muchos detalles sobre cómo se vería un exploit en el mundo real, o qué información podría ser obtenida por un atacante serio. Un portavoz señaló que “el escenario para la explotación es un poco complejo y requiere una amplia interacción del usuario para poder ejecutarlo.

“Hemos visto múltiples variantes del mismo ataque. Hemos observado que estos ataques suelen ejecutar una cadena de exploits aprovechando múltiples vulnerabilidades en la aplicación y el sistema operativo en conjunto”.

Burak Agca, ingeniero de Lookout 

Por ejemplo, la primera cadena descubierta de este tipo explotó una vulnerabilidad (desde que se parcheó) en el navegador Safari para salir del entorno de pruebas de la aplicación. Posteriormente se explotaron múltiples vulnerabilidades del sistema operativo (también, desde que se parcheó) para elevar los privilegios e instalar spyware sin el conocimiento del usuario

 El exploit de WhatsApp parece exhibir un comportamiento similar, y los detalles de un extremo a otro de este tipo de exploits son objeto de escrutinio por parte de la comunidad de seguridad. 

Para las personas y las empresas, está claro que confiar en WhatsApp diciendo que sus mensajes están cifrados de un extremo a otro simplemente no es suficiente para mantener seguros los datos confidenciales.

La superficie de amenaza para tales ataques podría ser potencialmente masiva.  Con más de dos mil millones de usuarios activos, WhatsApp puede ser un objetivo atractivo para los atacantes.  Además, todos los días se comparten 55 mil millones de mensajes, 4.5 mil millones de fotos y mil millones de videos en la plataforma de mensajería.

Aplicar la actualización de WhatsApp

WhatsApp implementó una solución en la versión 2.21.2.13, por lo que los usuarios deben asegurarse de que sus aplicaciones estén actualizadas. La función reparada tiene dos nuevos controles en la imagen de origen y la imagen de filtro:

  • Valida que el formato de la imagen sea igual a 1 (ANDROID_BITMAP_FORMAT_RGBA_8888). Esto significa que tanto las imágenes de origen como las de filtro deben estar en formato RGBA.
  • Valida el tamaño de la imagen comprobando que (stride*alto)/4 sea igual al ancho * alto.
    Debido a que ” stride” es igual al número de bytes por píxel multiplicado por el ancho, la segunda comprobación realmente garantiza que la imagen tenga realmente 4 bytes por píxel.

La gente no debería tener ninguna duda de que el cifrado de extremo a extremo sigue funcionando según lo previsto. Y, los mensajes de las personas permanecen seguros y protegidos. Este informe implica varios pasos que un usuario habría tenido que seguir. Por ello no tenemos ninguna razón para creer que los usuarios se habrían visto afectados por este error. 

Dicho esto, incluso los escenarios más complejos que identifican los investigadores pueden ayudar a aumentar la seguridad de los usuarios. Al igual que con cualquier producto tecnológico, recomendamos que los usuarios mantengan sus aplicaciones y sistemas operativos actualizados. Además, deben descargar actualizaciones siempre que estén disponibles, reportar mensajes sospechosos y deben comunicarse con nosotros si tienen problemas al usar WhatsApp.

Comunicado de WhatsApp
Deja un comentario

Adquiere tu Membresía Anual Wiser

Adquiere tu Membresía Anual Wiser y adquiere grandes beneficios

Más información