
Vários aplicativos Android populares disponíveis na Google Play Store são suscetíveis a vulnerabilidades relacionadas à passagem de caminho que podem ser exploradas por um aplicativo malicioso para substituir arquivos arbitrários no diretório inicial do aplicativo vulnerável.
“O impacto desse padrão de vulnerabilidade pode incluir execução arbitrária de código ou roubo de token, dependendo da implementação do aplicativo”, escreveu Dimitrios Valsamaras, da equipe de Inteligência de Ameaças da Microsoft, em um relatório publicado na quarta-feira.
Uma exploração bem-sucedida poderia permitir que o invasor assumisse o controle total das operações do aplicativo e usasse tokens roubados para obter acesso não autorizado às contas online e outros dados da vítima.

Dois dos aplicativos considerados vulneráveis a esse problema são:
- Gerenciador de arquivos Xiaomi (com.mi.Android.globalFileexplorer) – mais de 1 bilhão de instalações
- WPS Office (cn.wps.moffice_eng) – mais de 500 milhões de instalações
O Android implementa o isolamento alocando cada aplicativo com seus próprios dados e espaço de memória dedicados, mas também fornece algo chamado provedores de conteúdo que facilitam o compartilhamento de dados e arquivos entre aplicativos de maneira segura. No entanto, um descuido na implementação poderia permitir que restrições de leitura/gravação no diretório inicial do aplicativo fossem ignoradas.
“Este modelo baseado em provedor de conteúdo fornece um mecanismo de compartilhamento de arquivos bem definido que permite que aplicativos compartilhem arquivos com outros aplicativos de maneira segura e com controle refinado.”
“No entanto, o aplicativo consumidor não valida o conteúdo dos arquivos que recebe e, o mais preocupante, armazena em cache os arquivos recebidos no diretório de dados interno do aplicativo consumidor. Muitas vezes encontrei casos em que usei o nome fornecido.”

A armadilha é que o aplicativo que fornece o serviço declara uma versão maliciosa da classe FileProvider para permitir o compartilhamento de arquivos entre aplicativos e, em última análise, rouba arquivos confidenciais na área de dados privados do aplicativo consumidor. A substituição pode ter consequências graves.
Em outras palavras, esse mecanismo permite que um aplicativo consumidor confie cegamente na entrada e envie uma carga útil arbitrária com um nome de arquivo específico usando uma intenção explícita personalizada sem o conhecimento ou consentimento do usuário, aproveitando o fato de que isso leva à execução do código.
Como resultado, um invasor pode substituir os arquivos de configuração compartilhados do aplicativo de destino e se comunicar com o servidor gerenciado para extrair informações confidenciais.

Outro cenário envolve um aplicativo carregando bibliotecas nativas de seu próprio diretório de dados (em vez de “/data/app-lib”). Nesse caso, um aplicativo malicioso poderia explorar a vulnerabilidade descrita acima para substituir a biblioteca nativa por código malicioso executado em tempo de execução. A biblioteca está carregando.
Após divulgação responsável, a Xiaomi e o WPS Office corrigiram este problema a partir de fevereiro de 2024. No entanto, a Microsoft disse que esse problema pode se tornar mais prevalente e os desenvolvedores devem tomar medidas para verificar se há problemas semelhantes em seus aplicativos.
O Google também publicou suas próprias orientações sobre esse assunto, pedindo aos desenvolvedores que tratem os nomes de arquivos fornecidos pelos aplicativos de servidor de maneira adequada.
“Quando um aplicativo cliente grava um arquivo recebido no armazenamento, ele deve ignorar o nome do arquivo fornecido pelo aplicativo do servidor e, em vez disso, usar seu próprio identificador exclusivo gerado internamente como nome do arquivo”, disse o Google. “Os aplicativos clientes devem limpar os nomes de arquivos fornecidos quando não for prático gerar nomes de arquivos exclusivos.”

