Una vulnerabilidad de seguridad de alta gravedad, ahora parcheada, en la función de filtro de imágenes de WhatApp podría haber sido abusada para enviar una imagen maliciosa a través de la aplicación de mensajería para leer información sensible de la memoria de la aplicación.
El fallo, identificado como CVE-2020-1910 (puntuación CVSS: 7,8), tiene que ver con una lectura/escritura fuera de los límites y se deriva de la aplicación de filtros de imagen específicos a una imagen falsa y el envío de la imagen alterada a un destinatario involuntario, lo que permite a un atacante acceder a datos valiosos almacenados en la memoria de la aplicación.
«Una comprobación de límites que faltaba en WhatsApp para Android antes de la versión 2.21.1.13 y en WhatsApp Business para Android antes de la versión 2.21.1.13 podría haber permitido la lectura y escritura fuera de los límites si un usuario aplicaba filtros de imagen específicos a una imagen especialmente diseñada y enviaba la imagen resultante», señaló WhatsApp en su aviso publicado en febrero de 2021.
La empresa de ciberseguridad Check Point Research, que reveló el problema a la plataforma propiedad de Facebook el 10 de noviembre de 2020, dijo que fue capaz de colapsar WhatsApp cambiando entre varios filtros en los archivos GIF maliciosos.
En concreto, el problema radicaba en una función «applyFilterIntoBuffer()» que gestiona los filtros de imagen, que toma la imagen de origen, aplica el filtro seleccionado por el usuario y copia el resultado en el búfer de destino. Mediante ingeniería inversa de la biblioteca «libwhatsapp.so», los investigadores descubrieron que la función vulnerable se basaba en la suposición de que tanto la imagen de origen como la filtrada tienen las mismas dimensiones y también el mismo formato de color RGBA.
Dado que cada píxel RGBA se almacena como 4 bytes, una imagen maliciosa que tenga sólo 1 byte por píxel puede ser explotada para lograr un acceso a la memoria fuera de límites, ya que la «función intenta leer y copiar 4 veces la cantidad del búfer de la imagen de origen asignada.»
WhatsApp dijo que no tiene «ninguna razón para creer que los usuarios se hayan visto afectados por este fallo.» Desde la versión 2.21.1.13 de WhatsApp, la compañía ha añadido dos nuevas comprobaciones en la imagen de origen y en la imagen de filtro que garantizan que tanto la imagen de origen como la de filtro están en formato RGBA y que la imagen tiene 4 bytes por píxel para evitar lecturas no autorizadas.