Evitando MTE con CVE-2025-0072

0
21

Una nueva vulnerabilidad ha sido identificada en el controlador de GPU Mali de ARM, conocida como CVE-2025-0072, la cual permite a aplicaciones maliciosas en Android eludir las protecciones del Memory Tagging Extension (MTE) y ejecutar código arbitrario en el núcleo del sistema. Esta situación es alarmante, ya que a pesar de las medidas de seguridad implementadas por ARM, el riesgo de explotación persiste, especialmente en el código del núcleo que manipula la memoria a un nivel bajo.

La vulnerabilidad fue presentada a ARM el 12 de diciembre de 2024 y se solucionó en la versión del controlador Mali r54p0, lanzada públicamente el 2 de mayo de 2025, y que fue incluida en la actualización de seguridad de Android de mayo de 2025. Aquellos dispositivos que utilizan la arquitectura Command Stream Frontend (CSF) de los nuevos GPUs Mali de ARM, como los modelos Pixel 7, 8 y 9 de Google, son los más afectados.

El funcionamiento de la explotación se centra en cómo las colas CSF interactúan con las aplicaciones de usuario a través de colas de comandos, que son objetos manejados por el controlador. Estas colas deben ser vinculadas a grupos antes de poder ser utilizadas. Sin embargo, a través de un procedimiento que permite modificar y sobreescribir las direcciones de memoria asignadas, un atacante puede de forma efectiva liberar y reutilizar la memoria, logrando eludir las protecciones del MTE.

La esencia del problema radica en el mal manejo de las páginas de memoria, específicamente en cómo dichas páginas se liberan y reasignan. A través de una serie de pasos, incluyendo la creación y eliminación de grupos de colas, es posible que un atacante acceda a áreas de memoria que deberían estar protegidas. Una vez que se puede acceder a estas páginas, el atacante puede adoptar técnicas para manipular las estructuras de datos del kernel, lo que le permite esclavizar su propio proceso con privilegios elevados.

A pesar de las defensas implementadas por el MTE, que deberían detectar corrupciones de memoria emparejando etiquetas en las direcciones de memoria, esta vulnerabilidad revela que el acceso a la memoria liberada puede eludir estas medidas. En este caso, la gestión de la memoria por parte del controlador de GPU permitió que las páginas de memoria liberadas fueran accedidas sin desencadenar las protecciones esperadas.

Esta vulnerabilidad subraya no solo los desafíos continuos en la seguridad de la memoria, sino también la necesidad de una vigilancia constante en la implementación de sistemas complejos como los controladores de hardware que interactúan con el núcleo del sistema operativo. La comunidad de seguridad y los desarrolladores están llamados a prestar más atención a dichos aspectos en el diseño y la implementación de la infraestructura de software.
vía: GitHub Security