Diversos aplicativos populares para Android disponíveis na Google Play Store estão suscetíveis a uma vulnerabilidade associada à path traversal, batizada de ataque Dirty Stream, que pode ser explorada por um app malicioso para sobrescrever arquivos arbitrários no diretório home do aplicativo vulnerável.
"As implicações desse padrão de vulnerabilidade incluem execução arbitrária de código e roubo de tokens, dependendo da implementação do aplicativo", disse Dimitrios Valsamaras, da equipe de Inteligência de Ameaças da Microsoft, em um relatório publicado na última quarta-feira(01).
A exploração bem sucedida poderia permitir que um invasor assumisse o controle total do comportamento do aplicativo e usasse os tokens roubados para obter acesso não autorizado às contas online da vítima e outros dados.
Dois dos apps que foram encontrados vulneráveis ao problema são:
- Xiaomi File Manager (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
Embora o Android implemente isolamento ao atribuir a cada aplicativo seu próprio espaço dedicado de dados e memória, ele oferece o que é chamado de content provider para facilitar o compartilhamento de dados e arquivos entre aplicativos de maneira segura.
Mas falhas na implementação podem permitir a evasão das restrições de leitura/escrita dentro do diretório home do aplicativo.
"Esse modelo baseado em content provider fornece um mecanismo de compartilhamento de arquivos bem definido, permitindo que um aplicativo servidor compartilhe seus arquivos com outros aplicativos de maneira segura, com controle granular", disse Valsamaras.
No entanto, frequentemente nos deparamos com casos em que o aplicativo consumidor não valida o conteúdo do arquivo que recebe e, mais preocupante, usa o nome do arquivo fornecido pelo aplicativo servidor para armazenar o arquivo recebido no diretório de dados internos do aplicativo consumidor.
Essa falha pode ter consequências sérias quando um aplicativo servidor declara uma versão maliciosa da classe FileProvider para permitir o compartilhamento de arquivos entre aplicativos, levando o aplicativo consumidor a sobrescrever arquivos críticos em seu espaço de dados privado.
Em outras palavras, o mecanismo tira vantagem do fato de que o aplicativo consumidor confia cegamente na entrada para enviar payloads arbitrários com um nome de arquivo específico por meio de uma intenção explícita personalizada, sem o conhecimento ou consentimento do usuário, levando à execução de código.
Como resultado, isso poderia permitir que um atacante sobrescrevesse o arquivo de preferências compartilhadas do aplicativo alvo e o fizesse se comunicar com um servidor sob seu controle para exfiltrar informações sensíveis.
Outro cenário envolve aplicativos que carregam bibliotecas nativas de seu próprio diretório de dados (em vez de "/data/app-lib"), caso em que um aplicativo mal-intencionado poderia explorar a fraqueza mencionada para sobrescrever uma biblioteca nativa com código malicioso que é executado quando a biblioteca é carregada.
Após a divulgação responsável, tanto a Xiaomi quanto o WPS Office corrigiram a questão em fevereiro de 2024.
A Microsoft, contudo, disse que o problema pode ser mais prevalente, exigindo que os desenvolvedores tomem medidas para verificar seus aplicativos quanto a problemas semelhantes.
O Google também publicou suas próprias orientações sobre o assunto, instando os desenvolvedores a lidar adequadamente com o nome do arquivo fornecido pelo aplicativo servidor.
"Quando o aplicativo cliente escreve o arquivo recebido no armazenamento, ele deve ignorar o nome do arquivo fornecido pelo aplicativo servidor e, em vez disso, usar seu próprio identificador único gerado internamente como o nome do arquivo", disse o Google.
Publicidade
Em 14 de janeiro a Solyd irá revolucionar a forma como pentest e hacking deve ser ensinado. Se inscreva para ser o primeiro a saber das novidades. Saiba mais...