Cibersegurança

Falha no Telegram Desktop permitia que JavaScript oculto exfiltrasse mensagens de exportações HTML

Bot conseguia injetar código JavaScript em chats exportados como HTML; falha ficou quase dois anos nas versões estáveis do aplicativo.


Swati Khandelwal Quarta - 16 de Setembro de 2026 às 12:56
The Hacker News

Uma falha no Telegram Desktop permitia que a mensagem de um bot inserisse JavaScript oculto em conversas que os usuários exportavam para arquivos HTML, afirmaram pesquisadores de segurança da ExPatch em um relatório publicado em 12 de setembro.

No Telegram, a mensagem parecia comum, com um botão de link, e o script só era executado quando alguém abria o arquivo exportado em um navegador. A partir daí, ele podia copiar todas as mensagens daquele arquivo para um servidor controlado pelo atacante, ou alterar o que a página exibia.

O Telegram enviou uma correção em julho, mas a atualização do aplicativo não altera os arquivos exportados com versões anteriores, de modo que exportações HTML antigas ainda podem carregar o script.

O Telegram Desktop, aplicativo do Telegram para Windows, macOS e Linux, permite salvar uma única conversa ou todas as conversas de uma conta como páginas HTML que abrem em um navegador. Bots podem anexar linhas de botões sob suas mensagens, o que o Telegram chama de teclados inline, e o bot escolhe o texto exibido em cada botão.

Até a correção, o código de exportação gravava o texto desses botões diretamente na página HTML sem aplicar escape, descobriram os pesquisadores Denis Rostilov e Aleksander Rostilov.

O escape converte caracteres como < para que o navegador os mostre como texto em vez de tratá-los como código, e a exportação aplicava esse recurso ao texto das mensagens, nomes dos remetentes e outros campos.

Assim, um bot podia inserir uma tag de script no texto de um botão, preenchida com caracteres invisíveis para que o botão parecesse vazio na versão do Telegram Desktop que eles testaram.

O bot não precisa estar na conversa que ele visa. Uma mensagem cujos únicos botões são links da web mantém esses botões ao ser encaminhada, de modo que qualquer membro que encaminhar a mensagem do bot para um grupo carrega o script consigo, descobriram os pesquisadores. A mensagem então fica no histórico da conversa como qualquer outra até ser excluída, e pode ser exportada meses ou anos depois.

Eles relataram a falha ao Telegram em 3 de junho, dois dias após descobri-la, e afirmam que a testaram apenas em suas próprias contas e grupos de teste. O relatório não afirma que alguém tenha explorado a falha contra usuários reais.

Quando um arquivo de exportação contendo a mensagem era aberto, o script era executado sem nenhum clique adicional, disseram os pesquisadores. Ele podia ler todas as mensagens naquele arquivo, incluindo nomes de remetentes e carimbos de data e hora, o nome, o tipo e o número de membros da conversa, além do caminho local do arquivo, e enviar tudo isso para o servidor do atacante.

O código de exportação do Telegram Desktop divide exportações longas em arquivos de 1.000 mensagens cada, de modo que um único arquivo expõe no máximo o seu próprio conteúdo, e não a conversa inteira ou a conta do Telegram.

O script também podia reescrever a página. Na demonstração dos pesquisadores, ele substituiu toda a exportação por um formulário falso de "verificação" do Telegram.

O mesmo controle poderia alterar datas, remetentes ou o texto de mensagens em um arquivo usado como registro, disseram. O recurso não alterava a cópia do Telegram da conversa nem o arquivo de exportação salvo no disco.

Os pesquisadores classificaram a falha em 8,2 de 10 na escala CVSS 3.1 (Common Vulnerability Scoring System, sistema comum de pontuação de vulnerabilidades), e não havia nota do Telegram nem da NVD (National Vulnerability Database, base de dados nacional de vulnerabilidades dos Estados Unidos) até 14 de setembro.

Três condições precisavam ser verdadeiras para que o script fosse executado: a exportação HTML havia sido feita com uma versão do Telegram Desktop anterior à correção, a mensagem que carregava o script estava dentro da conversa exportada e o arquivo foi aberto em um navegador com JavaScript ativado.

Os pesquisadores analisaram apenas a exportação em HTML do Telegram Desktop e não analisaram o formato de exportação JSON (JavaScript Object Notation, notação de objetos em JavaScript) nem os recursos de exportação dos outros aplicativos do Telegram.

Se uma mensagem encaminhada de bot acaba em uma exportação depende de como a exportação é feita. Exportar uma única conversa pelo menu inclui todas as mensagens dos membros. Uma exportação completa da conta inclui, por padrão, apenas as mensagens do próprio dono da conta em grupos e canais, mas todas as mensagens em conversas individuais e conversas com bots, de acordo com o código de exportação e a documentação do Telegram.

A correção, commit 8457d13a do desenvolvedor do Telegram Desktop John Preston, adiciona o escape que faltava. Foi escrita em 30 de junho e chegou à versão beta 6.9.4 em 3 de julho e ao lançamento estável 7.0.1 em 14 de julho, as primeiras versões corrigidas publicadas no GitHub. A linha sem escape estava nas versões estáveis desde a 4.15.1, em março de 2024, cerca de dois anos e quatro meses.

  • Versões afetadas: Telegram Desktop 4.15.1 (março de 2024) até 6.9.3
  • Versões corrigidas: 6.9.4 beta (3 de julho de 2026), 7.0.1 (14 de julho de 2026) e posteriores

Os pesquisadores orientam os usuários a:

  • Atualizar o Telegram Desktop para a versão 7.0.1 ou posterior, ou para a 6.9.4 ou posterior no canal beta.
  • Após atualizar, exportar novamente quaisquer conversas que tenham sido exportadas para HTML antes da correção, ou abrir os arquivos antigos apenas com o JavaScript desativado.
  • Tratar qualquer exportação HTML feita antes da correção como não confiável, especialmente de grupos grandes, onde é difícil verificar a origem de cada mensagem.

Até que o aplicativo seja atualizado, não há motivo para criar novas exportações HTML, já que apenas as exportações geradas pelo código mais antigo carregam a falha.

Até 14 de setembro, o Telegram não havia publicado nenhuma orientação para usuários que possuem exportações antigas.

Sem aviso e sem CVE

As notas de lançamento das versões 6.9.4 e 7.0.1, o changelog do aplicativo e o comunicado do Telegram sobre a atualização, em 14 de julho, não mencionam a correção, e o repositório do Telegram Desktop no GitHub não lista avisos de segurança.

Também não há um identificador CVE (Common Vulnerabilities and Exposures, identificador comum de vulnerabilidades e exposições) para a falha. Os pesquisadores observaram que, até 11 de setembro, uma busca em bases de dados públicas de vulnerabilidades realizada pelo The Hacker News em 14 de setembro não encontrou nenhum.

Os pesquisadores afirmam que o Telegram confirmou a falha em 1º de julho e ofereceu uma recompensa de US$ 500 pelo bug, que eles recusaram e pediram que fosse doada para uma instituição de caridade. Eles pediram uma data de publicação coordenada e se ofereceram para ficar em silêncio até que a correção fosse enviada.

"Também consideramos a possibilidade de uma divulgação pública, mas não podemos aprová-la, pois divulgar até mesmo questões já resolvidas pode colocar mais usuários do Telegram em risco no futuro. Por exemplo, se informações sobre uma vulnerabilidade forem tornadas públicas, agentes mal-intencionados podem tentar explorá-la, causando assim danos financeiros aos usuários do Telegram", escreveu o Suporte do Telegram em um e-mail datado de 1º de julho que os pesquisadores publicaram em forma de captura de tela.

Os pesquisadores interpretaram isso como uma recusa em permitir a publicação mesmo após a correção. Eles dizem que nenhum acordo de confidencialidade cobria o relatório e publicaram em 12 de setembro, depois que a correção já havia sido enviada.

As regras do programa de recompensas por bugs publicado pelo Telegram afirmam que vulnerabilidades "divulgadas ao público ou a terceiros antes de serem resolvidas" não são elegíveis para recompensa. A página não diz nada sobre publicação após uma correção.

Telegram Segurança digital Vulnerabilidades