Uma falha foi descoberta no código de chamadas do Telegram para Android, que, segundo a startup NebuSec, poderia permitir a execução de código no telefone de quem atendeu a chamada. Ela foi corrigida na versão 12.10.4, lançada em 24 de setembro. Isso afeta usuários com o Telegram para Android anterior a essa versão: para um ataque, basta que a vítima atenda a chamada. O Telegram estava ciente do bug desde agosto, mas discorda que ele leve à execução de código.

O que fazer

Atualize o Telegram para Android para a versão 12.10.4 ou superior; a versão mais recente nos código-fonte do cliente é a 13.1.1, de 25 de outubro. O número da sua versão pode ser visto na parte inferior da tela de «Configurações». Se não for possível atualizar imediatamente, você pode restringir as chamadas em «Configurações → Privacidade e Segurança → Chamadas» para «Meus Contatos» ou «Ninguém» e evitar atender chamadas de desconhecidos.

Segundo a NebuSec, não há evidências de que a falha afete iOS, desktop ou chamadas em grupo; eles testaram chamadas individuais em telefones com processadores ARM64.

Onde está a falha

Durante uma chamada, os clientes trocam service (signalling) messages sobre seu estado: se o microfone e a câmera estão ligados, como o vídeo está girado. A biblioteca de chamadas tgcalls, comum aos clientes Telegram, é responsável pelo parsing dessas mensagens. Na função de parsing dessa mensagem, o código verificava se o campo de video rotation existia e era um número — mas então pegava o valor de um campo adjacente, o video state. Se o interlocutor enviasse a rotação sem o video state, o cliente acessava um elemento do dicionário que não existia e lia seu valor — um comportamento que a linguagem C++ não define: o programa pode falhar ou pegar qualquer coisa da memória.

A correção consiste em quatro linhas em duas versões do protocolo, onde um nome de campo foi substituído por outro. Na biblioteca comum tgcalls, ela apareceu em 21 de abril sob o título "Fix camera rotation", e no Telegram para Android, somente na 12.10.4 em 24 de setembro.

O que a NebuSec afirma

Em 29 de outubro, a NebuSec anunciou que a vulnerabilidade foi encontrada por seu produto NebuSec Code Security, que opera com o modelo GPT-5.4 — que eles próprios chamam de "dinosaur". De acordo com seus dados, conforme recontado pela SQ Magazine e kod.ru, as versões vulneráveis são da 8.6.2 à 12.10.3, ou seja, lançadas de março de 2022 a setembro de 2026; o atacante precisa de uma conta comum e que a chamada seja atendida.

A prova de code execution da NebuSec é um vídeo; não há análise técnica nem número CVE, e a cadeia de exploração não foi verificada independentemente por ninguém.

O que o Telegram respondeu

Um representante do Telegram informou à SQ Magazine que a empresa foi notificada sobre o erro em agosto e que a correção foi lançada antes do relatório da NebuSec. Segundo ele, nenhum dos dois relatórios continha uma cadeia de exploração funcional que levasse à execução de código. A mesma resposta é citada por kod.ru.