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.

App impôs restrição no envio de stickers em chats secretos para impedir transmissão de arquivos manipulados. - Foto: Divulgação/Telegram

App impôs restrição no envio de stickers em chats secretos para impedir transmissão de arquivos manipulados. �- Foto: Divulgação/Telegram

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.