Detectaron una vulnerabilidad en Android 14 en la pila Bluetooth LE
Hace poco se dio a conocer la noticia por parte de los desarrolladores del proyecto GrapheneOS, sobre una vulnerabilidad que detectaron en Android 14 en la pila Bluetooth LE, el error se debe a una corrupción de memoria introducido en Android 14 QPR2.
Para quienes desconocen de GrapheneOS, deben saber que este es un proyecto que desarrollar una versión segura del código base de AOSP, y ellos fueron quienes detectaron la vulnerabilidad en la pila Bluetooth de Android 14 la cual mencionan que puede ser explotada y permite conducir a la ejecución remota de código.
Sobre la vulnerabilidad, los desarrolladores de GrapheneOS mencionan que esta se origina en el acceso a un área de memoria liberada previamente, lo que se conoce como «uso después de liberación» (use-after-free). El problema se encuentra en el código encargado de procesar audio transmitido a través de Bluetooth LE.
Nuestra compatibilidad con el etiquetado de memoria de hardware para Pixel 8 y Pixel 8 Pro ha descubierto un error de corrupción de memoria introducido en Android 14 QPR2 para Bluetooth LE. Actualmente lo estamos investigando para determinar cómo solucionar o desactivar temporalmente la función recién introducida como solución alternativa.
La identificación de esta vulnerabilidad se debe en parte a la implementación de protecciones adicionales mediante la función hardened_malloc, que utiliza la extensión ARMv8.5 MTE. Esta extensión permite asignar etiquetas a cada operación de asignación de memoria y realizar verificaciones para garantizar el uso correcto de los punteros, evitando así la explotación de vulnerabilidades relacionadas con el acceso a memoria liberada, desbordamientos de búfer, llamadas a funciones antes de su inicialización y uso fuera del contexto actual.
Este error comenzó a surgir después de la actualización a Android 14 QPR2 (versión trimestral de plataforma), lanzada a principios de marzo. En la versión principal del código de Android 14, la funcionalidad MTE está disponible como opción pero aún no se encuentra habilitada de forma predeterminada.
Sin embargo, en GrapheneOS, se ha activado la protección MTE para proporcionar una capa adicional de seguridad, lo que permitió identificar el error después de la actualización a Android 14 QPR2. Este error causó bloqueos al utilizar auriculares Bluetooth Samsung Galaxy Buds2 Pro con firmware que habilitaba la protección basada en MTE. El análisis posterior del incidente reveló que el problema estaba relacionado con el acceso a memoria liberada en el controlador Bluetooth LE, y no fue causado por la integración de la funcionalidad MTE en sí misma.
Por la parte de las posibles soluciones a la vulnerabilidad, los desarrolladores de GrapheneOS mencionan que el deshabilitar el etiquetado de memoria para este proceso no es una solución alternativa aceptable ni siquiera a corto plazo porque es una superficie de ataque importante, independientemente de que este error en particular resulte explotable o no. Esto solo ocurre con ciertos dispositivos Bluetooth LE, no con todos los dispositivos Bluetooth.
La vulnerabilidad mencionada se ha solucionado en la versión 2024030900 de GrapheneOS. Es importante destacar que esta vulnerabilidad afecta a versiones de teléfonos inteligentes que no cuentan con protección de hardware adicional basada en la extensión MTE. Actualmente, la extensión MTE está habilitada únicamente para dispositivos Pixel 8 y Pixel 8 Pro.
Desarrollamos un parche para el error de uso después de la liberación de QPR2 de Android 14 que descubrimos con Bluetooth LE. Nuestra prioridad es lanzar pronto una versión de GrapheneOS con nuestra solución y lo informaremos como un error de seguridad de Android. Esto también debería resolver las regresiones de audio BLE.
La vulnerabilidad se ha observado en los smartphones Google Pixel 8 con firmware basado en Android 14 QPR2. Para los dispositivos de la serie Pixel 8, es posible habilitar el modo MTE en la configuración del desarrollador. Esto se puede hacer accediendo a «Configuración/Sistema/Opciones de desarrollador/Extensiones de etiquetado de memoria». Es importante tener en cuenta que habilitar MTE conlleva un aumento en el consumo de memoria de aproximadamente un 3 %, pero no afecta el rendimiento del dispositivo.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.