Falha no Instagram expôs conteúdo de contas privadas sem login

Em outubro de 2025, o pesquisador de segurança Jatin Banga identificou uma vulnerabilidade crítica nos servidores do Instagram que permitia o acesso completo a fotos e vídeos de contas privadas sem qualquer tipo de autenticação. A falha foi descoberta de forma acidental durante o desenvolvimento de uma ferramenta de automação de requisições HTTP e, em tese, poderia expor dados privados de centenas de milhões de usuários.

Segundo Banga, a vulnerabilidade permitia que qualquer pessoa, sem login, sem seguir o perfil e sem credenciais, obtivesse links diretos da CDN do Instagram para conteúdos de contas privadas. Além das imagens e vídeos em resolução completa, as respostas também incluíam legendas e metadados das publicações.

Como a vulnerabilidade funcionava

O problema estava relacionado a uma falha de autorização no lado do servidor. Ao enviar uma requisição GET não autenticada para o endereço instagram.com/[username], utilizando headers específicos que simulavam navegadores móveis, o servidor retornava um HTML contendo um objeto JSON chamado polaris_timeline_connection.

Dentro desse objeto, o array edges incluía URLs diretas da CDN com acesso ao conteúdo privado da conta-alvo. Não se tratava de erro de cache nem de configuração de CDN. O backend do Instagram gerava ativamente os dados privados e os entregava sem verificar se o solicitante tinha permissão para acessá-los.

Durante a análise técnica, Banga identificou um comportamento anômalo que chamou de “estado de gatilho”. Quando certas contas privadas recebiam esse tipo de requisição com headers mobile, o servidor passava a retornar “0 seguidores / 0 seguindo”, independentemente dos números reais. Nesse estado inconsistente, as verificações de privacidade simplesmente deixavam de ser aplicadas, permitindo o vazamento da timeline privada.

Alcance e impacto potencial

Seguindo práticas éticas de pesquisa em segurança, Banga restringiu os testes a contas próprias ou com autorização explícita. Em um conjunto de sete contas analisadas, duas apresentaram a vulnerabilidade, uma taxa de cerca de 28%. Considerando que o Instagram ultrapassa a marca de um bilhão de usuários, o impacto potencial poderia ser significativo.

A falha não afetava todas as contas privadas de forma uniforme. Indícios iniciais apontavam que perfis mais antigos tinham maior probabilidade de serem vulneráveis, embora a causa raiz nunca tenha sido oficialmente determinada. Segundo o pesquisador, a Meta não conduziu uma investigação técnica aprofundada capaz de explicar por que apenas determinadas contas eram afetadas.

O processo de divulgação à Meta

Entre 12 e 15 de outubro de 2025, Banga iniciou o processo de divulgação responsável junto à Meta. O primeiro relatório foi rejeitado em poucos minutos, aparentemente por erro de interpretação. Um segundo envio, com descrição técnica mais precisa, levou à abertura de uma investigação.

A Meta solicitou testes em uma conta própria, onde o exploit não funcionou, evidenciando que a falha era condicional. Em seguida, com autorização de um terceiro usuário, Banga demonstrou o problema com sucesso, extraindo dezenas de URLs privadas e enviando uma análise detalhada explicando o mecanismo da falha em duas etapas.

Correção silenciosa e respostas contraditórias

Em 16 de outubro de 2025, o pesquisador constatou que a vulnerabilidade havia deixado de funcionar. As contas antes afetadas passaram a retornar respostas vazias, indicando que uma correção havia sido aplicada de forma silenciosa, sem qualquer aviso formal.

Exatamente 48 horas após o envio da lista com os nomes das contas vulneráveis, o problema havia sido corrigido nessas contas específicas. Mesmo assim, quando Banga solicitou confirmação oficial, a resposta da Meta, enviada dias depois, foi que o problema “não pôde ser reproduzido”, classificando o caso como “Não Aplicável” e sem elegibilidade para recompensa no programa de bug bounty.

Ao apontar a contradição, já que as contas fornecidas haviam sido corrigidas logo após o reporte, a equipe de segurança da Meta respondeu que a correção poderia ter sido um efeito colateral de outra mudança não relacionada, mantendo a posição de que a falha não existia de forma comprovável.

Pontos que ficaram sem investigação

A comunicação entre o pesquisador e a Meta revela lacunas importantes no processo de análise. Banga se ofereceu para compartilhar logs completos de rede, incluindo headers de depuração que permitiriam rastreamento interno preciso das requisições nos sistemas da empresa. A oferta não foi aceita.

Ele também apresentou um conjunto comparativo de dados mostrando quais contas eram vulneráveis e quais não eram, um material valioso para identificar padrões e condições específicas do bug. Nenhuma análise baseada nesses dados foi solicitada.

Sem a identificação da causa raiz, não há garantia técnica de que o problema foi totalmente resolvido. Existe uma diferença clara entre eliminar sintomas visíveis e corrigir o defeito estrutural que deu origem à falha.

Documentação e divulgação pública

Durante todo o processo, Banga adotou um protocolo rigoroso de documentação. Ele preservou scripts de prova de conceito, registros de rede, capturas comparativas antes e depois do patch e vídeos com timestamps e hashes criptográficos para garantir a integridade das evidências. Todo o material foi versionado em um repositório público, criando registros imutáveis do período da investigação.

Após estender o prazo padrão de divulgação responsável para 102 dias, sem resposta final da Meta, o pesquisador notificou oficialmente a empresa sobre a intenção de tornar o caso público. Sem retorno, em 24 de janeiro de 2026, toda a documentação foi divulgada.

O episódio reacende o debate sobre transparência em programas de bug bounty e levanta questionamentos sobre como grandes plataformas lidam com falhas condicionais que não se manifestam de forma uniforme. Em sistemas com bilhões de usuários, ignorar a causa raiz de um problema pode significar que ele ainda está lá, apenas esperando o próximo gatilho.