
Exploit e relatório para aplicativo instalado para escalada de privilégios para root através de CVE-2024-48336 (Magisk Bug #8279), Escalada de Privilégios / Vulnerabilidade de Execução Arbitrária de Código
Este é um exploit para a vulnerabilidade CVE-2024-48336 no aplicativo Magisk que permite que um aplicativo local obtenha acesso root silenciosamente sem o consentimento do usuário.
A vulnerabilidade foi inicialmente reportada por @vvb2060 e o PoC foi feito por @canyie. Ela foi corrigida no Canary 27007.
Vídeo de demonstração do exploit desta vulnerabilidade para obter privilégios root silenciosamente e conceder root a qualquer aplicativo: https://github.com/canyie/MagiskEoP/blob/main/screen-20220302-093745.mp4
Passos para reproduzir esta vulnerabilidade:
Nome: Vulnerabilidade de Execução Arbitrária de Código no Aplicativo Magisk
Alias: Vulnerabilidade de Escalação de Privilégio no Magisk
Produto: Magisk
CVE: CVE-2024-48336
Reportador: @vvb2060
Data do Relatório Inicial: 2024-08-01
Data do Patch: 2024-08-21
Data da Divulgação: 2024-08-24
Versões Afetadas: Manager v7.0.0 ~ Canary 27006
Primeiras Versões Corrigidas: Canary 27007
Issue/Bug report: https://github.com/topjohnwu/Magisk/issues/8279
Patch CL: https://github.com/topjohnwu/Magisk/commit/c2eb6039579b8a2fb1e11a753cea7662c07bec02
Bug-introducing CL: https://github.com/topjohnwu/Magisk/commit/920b60da19212dd8d54d27ada77a30067ce50de6
Classe do Bug: Carregamento Dinâmico Inseguro de Código Externo
Enumerações de Fraquezas:
A função install() do ProviderInstaller.java no aplicativo Magisk anterior à versão canary 27007 não verifica o aplicativo GMS antes de carregá-lo, o que permite que um aplicativo local não confiável, sem privilégios adicionais, execute silenciosamente código arbitrário no aplicativo Magisk e escale privilégios para root por meio de um pacote adulterado, também conhecido como Bug #8279. Não é necessária interação do usuário para exploração.
Versões antigas do Android não suportam alguns algoritmos. Para fazer o Magisk funcionar corretamente nessas plataformas, ele tenta carregar o conscrypt do GMS chamando createCallingContext(). Verifique este link para mais detalhes: https://t.me/vvb2060Channel/692
No entanto, o GMS nem sempre está pré-instalado em todos os dispositivos. O Magisk assume que carregar código do GMS é sempre seguro, porém atacantes podem criar um aplicativo malicioso falso com o mesmo nome de pacote. Quando o aplicativo Magisk é iniciado, o código malicioso será executado no aplicativo Magisk. Como o aplicativo Magisk sempre tem acesso root concedido, isso permite que atacantes obtenham silenciosamente acesso root e executem código arbitrário com privilégios root sem a aceitação do usuário.
Nota: Este problema foi corrigido no Canary 27007, garantindo que o GMS seja um aplicativo de sistema antes de carregá-lo. No entanto, ainda é possível explorar este problema em dispositivos com GMS pré-instalado, mas que tenham implementações de verificação de assinatura quebradas (por exemplo, CorePatch).
Nota 2: Embora uma correção para este problema esteja presente no aplicativo oficial do Magisk, existem muitas outras instâncias de código semelhante em outros aplicativos sem uma correção adequada, como este e este. Isso potencialmente permite a execução arbitrária de código em aplicativos vulneráveis e potencialmente permite que atacantes obtenham acesso root novamente se ele for concedido aos aplicativos vítimas.