O Telegram solucionou uma vulnerabilidade de zero-day em sua aplicação de desktop para Windows que poderia ser explorada para ignorar alertas de segurança e iniciar scripts Python automaticamente.
Recentemente, houve especulações em fóruns e comunidades de hackers sobre uma possível falha de execução remota de código no Telegram para Windows.
Embora alguns posts tenham sugerido que se tratava de uma vulnerabilidade de "zero clique", os vídeos demonstrando o suposto contorno dos alertas de segurança e a vulnerabilidade RCE mostravam claramente uma interação do usuário ao clicar em uma mídia compartilhada para iniciar a calculadora do Windows.
O Telegram rapidamente contestou essas afirmações, negando a existência da referida vulnerabilidade e sugerindo que o vídeo era provavelmente uma falsificação.
Entretanto, logo em seguida, uma prova de conceito de exploração foi compartilhada em um fórum de hackers, explicando que um erro de digitação no código-fonte do Telegram para Windows poderia permitir o envio de arquivos Python (.pyzw) que ignoravam os alertas de segurança quando abertos.
Essa falha possibilitava a execução automática do arquivo pelo Python, sem aviso prévio do Telegram, o que normalmente ocorre com outros tipos de executáveis, se não fosse pelo erro de digitação.
Para tornar a situação ainda mais grave, a prova de conceito disfarçava o arquivo Python como um vídeo compartilhado, acompanhado de uma miniatura, induzindo os usuários a clicarem no vídeo falso para assisti-lo.
Em sua defesa, o Telegram argumentou que o bug não era uma vulnerabilidade de "zero clique", mas confirmou ter corrigido o "problema" no Telegram para Windows, impedindo a execução automática de scripts Python ao serem abertos. Esta correção foi implementada no lado do servidor, como será explicado na próxima seção.
"Os rumores sobre a existência de vulnerabilidades de zero clique no Telegram Desktop são imprecisos. Alguns" especialistas "recomendaram" desativar downloads automáticos "no Telegram - não houve problemas que pudessem ter sido desencadeados por downloads automáticos.
Porém, no Telegram Desktop, havia um problema que exigia que o usuário CLIQUE em um arquivo malicioso enquanto tinha o interpretador Python instalado em seu computador. Ao contrário de relatórios anteriores, esta não era uma vulnerabilidade de zero clique e poderia afetar apenas uma pequena fração da nossa base de usuários: menos de 0,01% dos nossos usuários têm o Python instalado e usam a versão relevante do Telegram for Desktop.
Uma correção no servidor foi aplicada para garantir que mesmo esse problema não seja mais reproduzido, de modo que todas as versões do Telegram Desktop (incluindo todas as mais antigas) não tenham mais esse problema."
Telegram
Houve questionamentos sobre como o Telegram identifica o software instalado nos dispositivos Windows dos usuários, dado que esse tipo de dado não é mencionado em sua Política de Privacidade.
O cliente Telegram Desktop mantém uma lista de extensões de arquivo associadas a arquivos potencialmente perigosos, como os executáveis.
Quando um desses tipos de arquivo é enviado pelo Telegram e um usuário o abre, em vez de ser executado automaticamente pelo programa associado no Windows, o Telegram exibe um aviso de segurança indicando a potencial ameaça.
"Este arquivo tem a extensão .exe. Pode danificar o seu computador. Tem certeza de que deseja executá-lo?", Diz o aviso do Telegram.
Entretanto, os arquivos com extensões desconhecidas compartilhados no Telegram são abertos automaticamente no Windows, permitindo que o sistema operacional decida qual programa usar.
No caso do Python para Windows, ao ser instalado, ele associa a extensão .pyzw ao executável do Python, resultando na execução automática dos scripts Python quando o arquivo é aberto.
Os desenvolvedores do Telegram reconheciam o risco desses tipos de executáveis e os adicionaram à lista de extensões de arquivos potencialmente perigosos. No entanto, um erro de digitação ocorreu durante a inclusão da extensão, resultando em 'pywz' em vez de 'pyzw'.
Corrigindo a ortografia da extensão .pyzw Python
Assim, quando esses arquivos eram enviados pelo Telegram e abertos, eram executados automaticamente pelo Python, caso estivesse instalado no Windows.
Isso permitia que invasores ignorassem os alertas de segurança e executassem código remotamente nos dispositivos Windows das vítimas, caso conseguissem persuadi-las a abrir o arquivo.
Para mascarar o arquivo, os pesquisadores criaram um bot do Telegram para enviá-lo com um tipo mime de ‘video/mp4’, fazendo com que o Telegram o exibisse como um vídeo compartilhado.
Se um usuário clicasse para assistir ao vídeo, o script seria automaticamente executado pelo Python para Windows.
O BleepingComputer testou essa exploração em conjunto com o pesquisador de segurança cibernética AabyssZG, que também compartilhou demonstrações em fóruns.
Usando uma versão anterior do Telegram, o BleepingComputer recebeu o arquivo 'video.pywz' do pesquisador, disfarçado como vídeo mp4. Este arquivo continha simplesmente código Python para abrir um prompt de comando.
Exploração de prova de conceito video.pyzw
Contudo, ao clicar para assistir ao vídeo, o Python automaticamente executava o script, abrindo o prompt de comando.
Demonstração do bug do Telegram para abrir um prompt de comando
O bug foi relatado ao Telegram em 10 de abril e corrigido alterando a grafia da extensão no arquivo de código-fonte ‘data_document_resolver.cpp’.
No entanto, essa correção ainda não parece estar ativa, pois os avisos de segurança não são exibidos ao abrir o arquivo.
Em vez disso, o Telegram implementou uma correção do lado do servidor, adicionando a extensão '.untrusted' aos arquivos pyzw. Quando abertos, o Windows solicita ao usuário o programa a ser utilizado para abri-los, em vez de executá-los automaticamente no Python.
Correção do lado do servidor do Telegram
Futuras versões do aplicativo Telegram Desktop devem incluir o aviso de segurança, em vez de apenas anexar a extensão ".untrusted", proporcionando assim uma camada adicional de segurança ao processo.
Via - Bleeping Computer
Opmerkingen