Falhas em stickers do Telegram deixava celular vulnerável a ataques
Problemas podiam ser explorados em chats secretos, mas já foram corrigidos em atualizações do Telegram distribuídas em setembro e outubro.
A empresa de segurança italiana Shielder publicou detalhes de um conjunto de 13 brechas de segurança que existiam no recebimento de stickers animados do Telegram.
A companhia descobriu que os stickers podiam ser manipulados e enviados em chats secretos, causando um erro na memória do Telegram que viabilizaria ataques ao smartphone.
As vulnerabilidades foram encontradas no Telegram para Android, iOS e macOS. Os aplicativos para celular foram corrigidos no dia 30 de setembro, enquanto a versão para os computadores da Apple foi arrumada em 2 de outubro.
Os detalhes das brechas ficaram retidos até agora para que os usuários tivessem tempo o suficiente para aplicar a atualização, evitando que hackers se aproveitem da informação e explorem o problema.
Arquivos de imagens ou animações, como stickers e figurinhas, não devem ser capazes de comprometer o dispositivo.
Os programas devem realizar o processamento de forma segura, impedindo que os dados presentes no arquivo caiam em espaços de memória dedicados a códigos.
Se trechos do arquivo forem deslocados para a memória de código, o hacker conseguirá, na prática, enviar um programa que será executado automaticamente durante a leitura do arquivo.
O especialista que encontrou os bugs, que se identifica apenas como "Polict", explicou que não tinha experiência no uso de certas ferramentas usadas para localizar falhas antes desse caso, mas que o contexto da funcionalidade levantou suspeitas.
No fim, ele descobriu que stickers modificados podiam ser enviados em chats secretos. Ao receber o sticker, o Telegram processava o arquivo de um modo incorreto, o que corrompia a memória do aplicativo.
Apesar de ter encontrado as falhas, o especialista não programou um código de ataque funcional que demonstrasse a exploração completa por meio do ataque.
Correção filtra stickers em chats secretos
Os stickers animados do Telegram são baseados em uma tecnologia chamada Lottie, que é um projeto de código aberto da Airbnb.
Com essa tecnologia, é possível exportar animações do Adobe After Effects para utilizá-las em outros contextos. O After Effects é voltado para animações e efeitos em vídeos, e a Lottie facilita a conversão do formato para o uso em apps – como é o caso dos stickers animados.
Mas os desenvolvedores do Telegram decidiram usar o RLottie, uma reimplementação da Lottie criada pela Samsung.
A versão da Samsung foi arquitetada na linguagem de programação C++, que exige mais cautela durante o desenvolvimento para evitar vulnerabilidades relacionadas ao uso inadequado de memória. Em troca, a C++ normalmente oferece desempenho mais elevado do que outras linguagens de programação.
De acordo com a documentação técnica da RLottie, o processamento de animações de origens desconhecidas não está no escopo do projeto. Isso significa que o software não foi projetado para lidar com arquivos manipulados de formas inesperadas.
Em chats normais, os stickers precisam passar pelos servidores do Telegram, o que permite uma filtragem. Caso um sticker seja manipulado, ele não chegará ao destinatário, protegendo o utilizador.
Uma das principais diferenças do Telegram em relação ao Signal e ao WhatsApp é a intervenção do servidor central nas conversas normais, o que permite esse tipo de medida.
Mas isso não acontece nos chats secretos, que são criptografados de ponta a ponta. A criptografia impede que o servidor do Telegram veja o que está sendo transmitido, e não há como impor um bloqueio no envio dos stickers, pois os servidores do Telegram nem sequer sabem se o que foi enviado é um sticker, um texto ou outro conteúdo qualquer.
Para corrigir a brecha, o aplicativo do Telegram passou a filtrar os stickers recebidos de modo a apenas processar aqueles que fazem parte de um conjunto de imagens pré-aprovadas. Se não houver uma referência correta a um pacote de stickers existente, nada será exibido na conversa.
Dessa forma, o app dificulta a exploração de qualquer erro de processamento, bloqueando o envio de stickers confeccionados especificamente para explorar erros na leitura do conteúdo.