- Foi descoberta uma vulnerabilidade grave no Freedom Chat, um app de mensagens temático MAGA (campo conservador dos EUA), que expunha números de telefone e códigos PIN dos usuários
- O app é sucessor de um projeto anterior chamado Converso, que já havia apresentado problemas de implementação de criptografia e exposição de dados
- A análise mostrou que, por meio do recurso de canais, os códigos PIN de todos os membros eram enviados a outros usuários, e que a API de sincronização de contatos permitia associar números de telefone a UIDs
- O pesquisador confirmou que não havia qualquer limitação de taxa (rate limiting), o que permitiu coletar os números de telefone de todos os usuários do Freedom Chat em apenas um dia
- O caso é apontado como um exemplo de como um app que “enfatiza segurança” falhou até mesmo em proteger dados pessoais básicos
Da transição de Converso para Freedom Chat
- Lançado em 2023, o Converso alegava ter uma “estrutura descentralizada sem servidor” e “E2EE de última geração”, mas a análise do pesquisador crnković mostrou que todas essas alegações eram falsas
- Na prática, usava servidor central e um serviço de criptografia de terceiros (Seald), e as chaves de criptografia podiam ser derivadas a partir de informações públicas
- Todas as mensagens eram enviadas para um bucket público do Firebase, podendo ser lidas por qualquer pessoa
- Depois disso, o CEO Tanner Haas retirou o app do ar e o rebatizou como Freedom Chat, citando como motivo as “preocupações com privacidade do campo conservador”
- Ele mencionou a lição de “aceitar críticas e melhorar”, mas os problemas de segurança se repetiram
Estrutura e funções do Freedom Chat
- O app usa cadastro baseado em número de telefone e verificação por código 2FA, sendo que a definição de PIN é opcional
- As principais funções são chat 1:1 e canais (Channels), em uma estrutura semelhante à do Telegram
- O app promovia um recurso de bloqueio de captura de tela como “função de segurança”, embora isso não tivesse relação com a segurança real
Vazamento de código PIN
- O resultado das requisições à API
/channel incluía, no objeto de usuário (user object) de 1.519 membros do canal, um campo de PIN
- Junto com o UID de cada usuário, chave Seald, data de criação etc., o código PIN de 6 dígitos era exposto em texto puro
- Ao criar uma nova conta e verificar a resposta, foi confirmado que o próprio PIN aparecia integralmente nos dados retornados
- Ou seja, havia uma estrutura em que o PIN de todos os usuários que permaneciam no canal padrão era exposto a outros usuários
Vulnerabilidade de associação de números de telefone
- A API
/user/numbers verificava a existência de contatos da mesma forma que o WhatsApp
- Se um número incluído na requisição pertencesse a um usuário do Freedom Chat, a API retornava o UID e a chave Seald
- O pesquisador confirmou que essa API não tinha qualquer limitação de taxa, tornando possível testar sequencialmente todos os números de telefone dos EUA
- Como resultado, era possível fazer a associação número de telefone-UID e, ao combinar isso com os dados UID-PIN já expostos, completar o mapeamento número de telefone-PIN
Experimento de vazamento de dados de todos os usuários
- O pesquisador escreveu um script em Python para enviar automaticamente requisições para todos os números de telefone da América do Norte (combinações de 7 dígitos × códigos de área)
- Em cada requisição, eram enviados 40.000 números, com tempo médio de resposta de cerca de 1,5 segundo
- Em 27 horas, todas as requisições foram processadas com sucesso, concluindo a coleta dos números de telefone de todos os usuários do Freedom Chat
- O servidor respondia sem limitação de taxa nem bloqueios, deixando os dados em um estado de acesso totalmente aberto
Resposta e medidas posteriores
- 2025-11-23: vulnerabilidade descoberta
- 2025-12-04: o repórter da TechCrunch Zack Whittaker informou o Freedom Chat sobre a vulnerabilidade
- 2025-12-05: o Freedom Chat respondeu que “o PIN não é usado para restaurar mensagens” e que já estava passando por um processo de auditoria
- 2025-12-09: notificação de que o problema havia sido corrigido
- 2025-12-11: publicação simultânea deste relatório e da matéria da TechCrunch
Principal lição
- O Freedom Chat dizia oferecer “supersegurança”, mas faltavam elementos básicos de autenticação, limitação de taxa e proteção de dados na arquitetura
- Como resultado, os números de telefone e os PINs de todos os usuários foram expostos, tornando ineficazes suas funções de segurança
- O caso é considerado um exemplo representativo da distância entre marketing de segurança e implementação real
1 comentários
Comentários do Hacker News
O sistema criptografado de consulta de números de telefone do Signal é interessante
Como o servidor consulta os números usando operação XOR em nível de bits em RAM criptografada por hardware, mesmo inspecionando o sistema no nível mais baixo não dá para saber se o número de telefone solicitado existe ou não
Claro, rate limiting é uma questão importante à parte. Ao construir um sistema de segurança, há realmente muitos casos de borda que precisam ser cobertos
Em plataformas não comerciais e voltadas à privacidade como o Matrix, esse tipo de mapeamento deveria ser impossível
Por exemplo, foi proposta uma forma de fazer upload do hash dos números de telefone para cada par de usuários, para que só pessoas que estão na lista de contatos umas das outras possam se encontrar
A vantagem é que o espaço de hash é grande, então é difícil fazer engenharia reversa, e o usuário pode definir diretamente o escopo de descoberta permitido
A desvantagem é que um invasor pode gerar todas as combinações de números e extrair relações de contato, e um governo também poderia interceptar a verificação por SMS e abusar disso
O campo
pindo objeto de usuário parece suspeitoTalvez isso tenha acontecido por causa de uma biblioteca de serialização opt-out. Como por padrão ela serializa o objeto inteiro, se o desenvolvedor esquecer de configurar a exclusão de um campo específico, ele acaba sendo exposto diretamente
Ou talvez o servidor simplesmente estivesse usando um dicionário JS e não removeu o campo antes de enviar a resposta
Essa vulnerabilidade é um problema antigo mencionado em um artigo do grupo de pesquisa da Universidade de Viena, e em 2016 o Telegram foi explorado da mesma forma, permitindo ao governo iraniano coletar os números de telefone de 15 milhões de usuários
Link relacionado: blog do Telegram
Hoje em dia, a maioria das vulnerabilidades de segurança vem simplesmente de chamar endpoints HTTP de formas inesperadas
Quando se fala em hacking em 2025, muita gente imagina técnicas complexas, mas a realidade é publicar uma API sem sequer rate limiting. É o tipo de problema que se resolveria com uma linha de configuração do Nginx
A maioria dos objetivos é reduzir atrito para o usuário e aumentar a eficiência comercial. Muitos desenvolvedores implementam funcionalidades sem conhecer vulnerabilidades básicas como XSS ou SSRF
Erros básicos de segurança como falhas no mapeamento de portas do Docker ou ausência de CSP são comuns demais
Ao ler a frase “quero oferecer aos leitores apenas os melhores posts de blog”, tive a sensação de ter encontrado alguém com uma mentalidade parecida com a minha
Fico curioso se o Freedom Chat® tem alguma função que impeça jornalistas de entrarem no chat em grupo. Estou perguntando meio de brincadeira, meio sério, por um amigo do DoD
Só neste ano já houve vários casos em que “apps de segurança” vazaram dados de usuários ao lidar com eles
De cabeça, lembro de uns 20 centavos de dólar (=4 casos), mas provavelmente houve mais
Casos relacionados: 1, 2, 3
No ano passado, por acaso vi um quadro de vagas do GOP, e as candidaturas estavam armazenadas no mesmo índice de busca que os anúncios de emprego
Quando pesquisei por “bob”, fiquei chocado ao ver que os currículos e respostas dos candidatos apareciam expostos ali mesmo
Depois do caso Anom, precisamos de uma palavra melhor do que “honeypot”
Um mensageiro realmente seguro não vai surgir desse jeito. Mas o marketing continua, e novos usuários são atraídos toda vez
Vazamentos de dados acontecem com tanta frequência que as pessoas já ficaram dessensibilizadas. Até indenizações de ações coletivas acabam virando um processo de fornecer ainda mais dados pessoais
Mercados de previsão, criptomoedas etc. também passam a sensação de empacotar como “sucesso” falhas estruturais que prejudicam os participantes
O Freedom Chat anunciou que “a correção do problema foi concluída”, mas fica a dúvida se foi corrigido mesmo
Se a frase “não tenho experiência em desenvolvimento de apps móveis, mas achei que não seria difícil porque sou inteligente” for uma citação real, soa quase como uma fala de stand-up comedy