
Exploit e informe para aplicación instalada para escalar privilegios a root a través de CVE-2024-48336 (Magisk Bug #8279), Vulnerabilidad de Escalada de Privilegios / Ejecución Arbitraria de Código
Este es un exploit para una vulnerabilidad CVE-2024-48336 en la aplicación Magisk que permite a una aplicación local obtener silenciosamente acceso root sin consentimiento del usuario.
La vulnerabilidad fue reportada inicialmente por @vvb2060 y probada por @canyie. Ha sido corregida en Canary 27007.
Video de demostración de explotación de esta vulnerabilidad para obtener silenciosamente privilegios de root y otorgar root a cualquier aplicación: https://github.com/canyie/MagiskEoP/blob/main/screen-20220302-093745.mp4
Pasos para reproducir esta vulnerabilidad:
Nombre: Vulnerabilidad de Ejecución Arbitraria de Código en la Aplicación Magisk
Alias: Vulnerabilidad de Escalada de Privilegios en Magisk
Producto: Magisk
CVE: CVE-2024-48336
Reportero: @vvb2060
Fecha del Reporte Inicial: 2024-08-01
Fecha del Parche: 2024-08-21
Fecha de Divulgación: 2024-08-24
Versiones Afectadas: Manager v7.0.0 ~ Canary 27006
Primeras Versiones Parcheadas: Canary 27007
Reporte de Problema/Error: https://github.com/topjohnwu/Magisk/issues/8279
Parche CL: https://github.com/topjohnwu/Magisk/commit/c2eb6039579b8a2fb1e11a753cea7662c07bec02
CL que introdujo el error: https://github.com/topjohnwu/Magisk/commit/920b60da19212dd8d54d27ada77a30067ce50de6
Clase de Error: Carga de Código Externo Dinámico Insegura
Enumeraciones de Debilidades:
La función install() de ProviderInstaller.java en la aplicación Magisk anterior a la versión canary 27007 no verifica la aplicación GMS antes de cargarla, lo que permite que una aplicación local no confiable sin privilegios adicionales ejecute silenciosamente código arbitrario en la aplicación Magisk y escale privilegios a root a través de un paquete manipulado, también conocido como Error #8279. No se requiere interacción del usuario para la explotación.
Las versiones antiguas de Android no soportan algunos algoritmos. Para que Magisk funcione correctamente en estas plataformas, intenta cargar conscrypt desde GMS llamando a createCallingContext(). Revisa este enlace para más detalles: https://t.me/vvb2060Channel/692
Sin embargo, GMS no siempre está preinstalado en todos los dispositivos. Magisk asume que cargar código desde GMS siempre es seguro, pero los atacantes pueden crear una aplicación maliciosa falsa con el mismo nombre de paquete. Cuando se lanza la aplicación Magisk, el código malicioso se ejecutará dentro de la aplicación Magisk. Dado que la aplicación Magisk siempre tiene acceso root, esto permite a los atacantes obtener silenciosamente acceso root y ejecutar código arbitrario con privilegios de root sin la aceptación del usuario.
Nota: Este problema se corrigió en Canary 27007 asegurándose de que GMS sea una aplicación del sistema antes de cargarlo. Sin embargo, aún es posible explotar este problema en dispositivos con GMS preinstalado pero que tengan implementaciones de verificación de firmas rotas (por ejemplo, CorePatch).
Nota 2: Aunque existe una corrección para este problema en la aplicación oficial de Magisk, hay muchas otras instancias de código similar en otras aplicaciones sin una corrección adecuada, como esta y esta. Esto potencialmente permite una ejecución arbitraria de código en aplicaciones vulnerables y potencialmente permite a los atacantes obtener acceso root nuevamente si se lo otorga a las aplicaciones víctimas.