Detectaron una vulnerabilidad en el formato ALAC que afecta a mayoría de los dispositivos Android MediaTek y Qualcomm
Check Point dio a conocer hace poco mediante una publicación de blog que ha identificado una vulnerabilidad en los decodificadores MediaTek (CVE-2021-0674, CVE-2021-0675) y Qualcomm (CVE-2021-30351) para el formato de compresión de audio Apple Lossless Audio Codec (ALAC).
Se menciona que el problema permite que el código del atacante se ejecute mientras se procesan datos con formato especial en el formato ALAC. El peligro de la vulnerabilidad se ve agravado por el hecho de que afecta a los dispositivos que ejecutan la plataforma Android, equipados con chips MediaTek y Qualcomm.
Como resultado del ataque, un atacante puede organizar la ejecución de malware en un dispositivo que tiene acceso a los datos multimedia y de comunicación del usuario, incluidos los datos de la cámara.
Según una estimación aproximada, 2/3 de todos los usuarios de teléfonos inteligentes basados en la plataforma Android se ven afectados por el problema. Por ejemplo, en los EE. UU., la participación total de todos los teléfonos inteligentes Android vendidos en el cuarto trimestre de 2021 enviados con chips MediaTek y Qualcomm fue del 95,1 % (48,1 %: MediaTek, 47 %: Qualcomm).
Los problemas de ALAC que encontraron nuestros investigadores podrían ser utilizados por un atacante para un ataque de ejecución remota de código (RCE) en un dispositivo móvil a través de un archivo de audio con formato incorrecto. Los ataques RCE permiten a un atacante ejecutar de forma remota código malicioso en una computadora. El impacto de una vulnerabilidad RCE puede variar desde la ejecución de malware hasta que un atacante obtenga el control de los datos multimedia de un usuario, incluida la transmisión desde la cámara de una máquina comprometida.
Además, una aplicación de Android sin privilegios podría usar estas vulnerabilidades para escalar sus privilegios y obtener acceso a datos multimedia y conversaciones de usuarios.
Las vulnerabilidades de RCE permiten a un atacante ejecutar código arbitrario en un dispositivo remoto. Un atacante puede lograr RCE de varias maneras diferentes, que incluyen:
- Ataques de inyección: muchos tipos diferentes de aplicaciones, como consultas SQL, utilizan datos proporcionados por el usuario como entrada para un comando. En un ataque de inyección, el atacante proporciona deliberadamente una entrada mal formada que hace que parte de su entrada se interprete como parte del comando. Esto permite a un atacante dar forma a los comandos ejecutados en el sistema vulnerable o ejecutar código arbitrario en él.
- Ataques de deserialización: las aplicaciones suelen utilizar la serialización para combinar varios datos en una sola cadena para que sea más fácil de transmitir o comunicar. La entrada de usuario con formato especial dentro de los datos serializados puede ser interpretada por el programa de deserialización como código ejecutable.
- Escritura fuera de los límites: las aplicaciones asignan regularmente fragmentos de memoria de tamaño fijo para almacenar datos, incluidos los datos proporcionados por el usuario. Si esta asignación de memoria se realiza incorrectamente, un atacante puede diseñar una entrada que escriba fuera del búfer asignado.
Aún no se han revelado los detalles de la explotación de la vulnerabilidad, pero se informa que se realizaron correcciones a los componentes de MediaTek y Qualcomm para la plataforma Android en diciembre de 2021. En el informe de diciembre sobre vulnerabilidades en la plataforma Android, los problemas se marcan como vulnerabilidades críticas en componentes cerrados para chips Qualcomm. La vulnerabilidad en los componentes de MediaTek no se menciona en los informes.
Check Point Research divulgó responsablemente la información a MediaTek y Qualcomm y trabajó en estrecha colaboración con ambos proveedores para asegurarse de que se solucionaran estas vulnerabilidades.
La vulnerabilidad es interesante por sus raíces. En 2011, Apple abrió bajo la licencia Apache 2.0 los códigos fuente del códec ALAC, que permite comprimir datos de audio sin pérdida de calidad, e hizo posible el uso de todas las patentes relacionadas con el códec. El código se publicó, pero no se mantuvo y no ha cambiado en los últimos 11 años.
Al mismo tiempo, Apple continuó apoyando por separado la implementación utilizada en sus plataformas, incluida la corrección de errores y vulnerabilidades en ella. MediaTek y Qualcomm basaron sus implementaciones de codecs ALAC en el código fuente abierto original de Apple, pero no abordaron las vulnerabilidades abordadas por la implementación de Apple en sus implementaciones.
Aún no hay información sobre la manifestación de una vulnerabilidad en el código de otros productos que también utilizan el código ALAC desactualizado. Por ejemplo, el formato ALAC se admite desde FFmpeg 1.1, pero el código de implementación del decodificador se mantiene activamente.
Finalmente si estás interesado en conocer más al respecto, puedes consultar los detalles en el siguiente enlace.