O OnePlus Nord 2 possui uma vulnerabilidade que permite que um invasor obtenha acesso irrestrito ao shell root. Continue lendo para saber mais!
Muitos de nós aqui no XDA-Developers começamos a navegar nos fóruns pela primeira vez quando queríamos fazer root em nossos dispositivos Android. Naquela época, as pessoas geralmente dependiam de métodos de "raiz com um clique": aplicativos ou scripts contendo cargas úteis que visam vulnerabilidades conhecidas de escalonamento de privilégios do firmware existente para obter root acesso. Com melhorias e mudanças na criptografia, nas permissões e no tratamento relacionado à privacidade, os dispositivos Android modernos estão relativamente protegidos contra tais vetores de ataque, mas sempre haverá espaço para explorações e vulnerabilidades.
OnePlus pode ter consolidado seu nome entre os principais OEMs Android, mas seus telefones são não é estranho para falhas de segurança. Desta vez, a empresa deixou uma vulnerabilidade bastante interessante (leia-se: preocupante) sem correção no
OnePlus Norte 2 desde o seu lançamento. Embora a exploração da brecha exija acesso físico ao dispositivo, o invasor pode efetivamente obtenha um shell root irrestrito antes mesmo que o usuário possa inserir suas credenciais. Notavelmente, o recém-lançado Edição Pac-Man do Nord 2 também é afetado.Fundo
Hoje em dia, quando falamos em ter acesso root em um smartphone Android, as pessoas costumam pensar em corrigindo a imagem de inicialização de estoque com Magisk primeiro e depois atualizar a imagem corrigida para o dispositivo de destino após o desbloqueio do bootloader. Dessa forma, o usuário final pode ter acesso supervisionado ao binário “su” através de um aplicativo gerenciador. Alguns outros abordagens experimentais existem, mas raramente reúnem tanto uso convencional.
Porém, quando se trata de pré-produção, o cenário é totalmente diferente. Ao preparar o firmware de um dispositivo, os engenheiros precisam ter vários parâmetros de registro ativados, incluindo acesso root. Mesmo em um depuração do usuário construir, o Android Debug Bridge Daemon (adbd) é executado como root, para que seja possível ter acesso privilegiado ao shell para fins de depuração. Quando o firmware estiver pronto para envio, todos esses parâmetros de depuração deverão ser desativados antes de implementá-lo.
Mas o que acontece se você esquecer de fazer isso? Veremos como os lançamentos oficiais do OxygenOS para o OnePlus Nord 2 apresentam essa falha.
OnePlus Nord 2 – Vulnerabilidade do shell raiz
Alguns OEMs, como a Samsung, oferecem capacidade de sideload de pacotes de atualização em sua recuperação de estoque em dispositivos de varejo. Nesse caso, o adbd
O binário é executado com um privilégio significativamente alto durante o carregamento lateral, mas ele se fecha assim que o processo de atualização termina. Fora isso, não há acesso ADB permitido em um ambiente de recuperação fornecido pelo OEM.
O OnePlus não permite mais que os usuários atualizem um pacote ZIP de atualização por meio de recuperação de estoque via sideload ADB. Supondo que todo o resto esteja configurado como deveria, o ambiente de recuperação de um dispositivo OnePlus normal deve estar protegido contra invasores que entregam qualquer tipo de carga útil usando ADB. Infelizmente, nem tudo corre conforme o planejado no caso do OnePlus Nord 2.
Acontece que qualquer um pode gerar um shell de depuração do Android com privilégios de root dentro do ambiente de recuperação do OnePlus Nord 2. Uma das configurações críticas de depuração aparentemente chegou às compilações de produção, o que leva a essa falha.
Explorando a falha do OnePlus Nord 2
Tudo que você precisa fazer é reiniciar o OnePlus Nord 2 no modo de recuperação. Um invasor pode pegar o dispositivo e usar uma combinação simples de botões de hardware para forçá-lo a entrar no modo de recuperação. Na verdade, não há necessidade de acessar o menu de recuperação propriamente dito, pois a seção vulnerável vem antes disso. O crédito vai para o membro sênior do XDA Andro Plus para apontando a existência desta falha em outubro de 2021.
- Com o telefone desligado, pressione os botões de diminuir volume e liga/desliga simultaneamente até veja o logotipo OnePlus com um banner minúsculo “MODO DE RECUPERAÇÃO” no canto inferior esquerdo da tela.
- A seguir, você deverá ver a tela de seleção de idioma. Não há necessidade de avançar, pois podemos iniciar o acesso ao ADB aqui mesmo.
- Agora conecte o telefone a um PC (ou Mac) usando o cabo USB. Caso você esteja usando o Windows, você pode ver uma nova interface de depuração USB do Android aparecendo no Gerenciador de dispositivos. Você também pode precisar instalar um Driver USB para Android antes que o Windows possa reconhecer o novo dispositivo. Os usuários de Linux e macOS, por outro lado, podem usar o
lsusb
comando para detectar a presença da nova interface de hardware. - Considerando que você já possui a versão mais recente do ADB e inicialização rápida utilitários instalados em seu PC/Mac, abra uma instância de Prompt de Comando/PowerShell/Terminal e execute o seguinte comando:
Deve listar o Nord 2 em modo de recuperação. Isto também é particularmente interessante, já que o prompt de autorização padrão do ADB não é necessário aqui. Você pode receber um erro de “dispositivo não autorizado”, mas eliminar o banco de dados de chaves ADB RSA existente do PC host e reiniciar o servidor ADB deve eventualmente permitir que você o autorize.adb devices
- Agora instrua
adbd
para executar como root:
Este comando pode demorar muito e você provavelmente receberá um erro de tempo limite. No entanto, agoraadb root
adbd
deve estar rodando como root. - Por fim, verifique o nível de privilégio do shell usando o seguinte comando:
adb shell whoami
A extensão da falha
Os potenciais abusos desta vulnerabilidade de segurança são assustadores. Com um ataque bem-sucedido ao OnePlus Nord 2, um invasor pode despejar todas as partições do dispositivo. Como resultado, toda a partição de dados – incluindo arquivos armazenados em diretórios de dados privados de aplicativos normalmente inacessíveis – fica acessível ao invasor. Caso a partição de dados tenha sido criptografada (porque o usuário definiu um PIN ou senha), o despejo ainda pode ser útil para análise forense.
Além disso, você pode enviar um executável para /data/local/tmp
e execute-o a partir daí. Este é um vetor de ataque clássico, que pode ser útil para carregar outro exploit em cadeia. Além disso, como agora você pode ligar para o setprop
utilitário como root para modificar vários valores de prop, você pode tecnicamente sequestrar algumas das variáveis privilegiadas específicas do OEM. Por último, mas não menos importante, mesmo que você não tenha as opções de desenvolvedor desbloqueadas, o telefone solicitará automaticamente o acesso à depuração USB após você invocar ADB em recuperação e reinicialização no ambiente Android normal, o que significa que o escopo da vulnerabilidade não está limitado apenas à seção de recuperação apenas.
Observe que você não pode instalar arquivos APK usando ADB no ambiente de recuperação devido ao fato de que o utilitário Gerenciador de Pacotes não está acessível lá.
Como verificar se o seu OnePlus Nord 2 foi afetado? (Dica: é)
Conforme mencionado anteriormente, você pode explorar esta vulnerabilidade tanto na edição regular quanto na especial do Pac-Man do OnePlus Nord 2. Resumindo, se você inserir um shell root (você saberá quando o símbolo do shell mudar de $
para #
), então você saberá que a falha está presente.
Obtivemos com sucesso acesso root shell no mais recente firmware público indiano e europeu do OxygenOS para o dispositivo, que significa cada unidade OnePlus Nord 2 existente é vulnerável no momento em que escrevo este artigo.
Qual é o próximo?
Acompanharemos esse assunto à medida que mais informações estiverem disponíveis. OnePlus forneceu a seguinte declaração sobre o assunto:
Levamos a privacidade e a segurança muito a sério. Estamos priorizando esse assunto e compartilharemos uma atualização assim que tivermos mais informações.
Embora tudo isso pareça assustador, lembre-se de que um invasor ainda precisará acessar fisicamente o telefone para obter acesso root ao shell. Até que o OnePlus lance uma atualização que corrija a vulnerabilidade, tente manter seu OnePlus Nord 2 longe de estranhos. Embora não tenhamos encontrado nenhum caso de uso malicioso, não podemos descartar essa possibilidade, pois a vulnerabilidade está disponível há pelo menos 2 meses.