Pular para o conteúdo
    ArtigoSegurança e privacidade

    OpenCode fala em destilação, mas o que pôs chaves de API em risco foi um sistema legado

    O OpenCode confirmou acesso indevido a um sistema legado do Console que pode ter exposto chaves de OpenAI, Anthropic e outros provedores de 1,4% dos usuários. A ligação com um ataque de destilação foi feita pela própria empresa e segue sem explicação.

    Servidor parcialmente desmontado sobre uma bancada de escritório vazio, com etiqueta de desativação e cabos desconectados, iluminado por luz fria lateral
    Acesso indevido a um sistema legado do Console do OpenCode pode ter exposto chaves de API de 1,4% dos usuários
    Neste artigo

    A mensagem chegou na manhã de sábado, 17 de outubro, com o assunto que nenhum desenvolvedor quer encontrar na caixa de entrada: Action Required: Potential provider key breach. Os destinatários eram clientes do Console, o serviço pago do OpenCode (abre em nova aba). O OpenCode é o agente de programação de código aberto mantido pela equipe Anomaly/SST, que roda no terminal, no editor ou num app de desktop e conversa com modelos de mais de 75 provedores. O e-mail circulou num print do fórum r/opencode, que Matt Johansen, autor que escreve sobre segurança, compartilhou no X. Segundo o texto, alguém obteve acesso não autorizado a um sistema legado que a empresa estava desativando, e as chaves de provedores terceiros salvas no workspace podem ter sido expostas. O pedido era revogar todas elas, no painel de cada provedor.

    A versão pública saiu às 18h08 (UTC) do mesmo dia, na conta oficial do projeto no X. Ela trouxe uma palavra que não aparece no trecho conhecido do e-mail, e foi essa palavra que pautou a conversa desde então:

    Tivemos uma violação de segurança ontem à noite, relacionada a um ataque de destilação em larga escala, que afetou 1,4% dos usuários do OpenCode Console. Notificamos todos eles hoje de manhã por e-mail. Se você não recebeu um e-mail, não foi afetado; foi um subconjunto de usuários que tinham provedores externos vinculados. O incidente está em andamento, então não podemos compartilhar mais detalhes neste momento, mas estamos trabalhando com Anthropic, OpenAI e Google para remediar.

    — OpenCode (@opencode), 17 de out. de 2026, no X

    Folha impressa de aviso de violação de segurança com sequências de chaves de API riscadas, apoiada sobre pastas de um arquivo antigo, iluminada por luz fria lateral
    O acesso indevido a um sistema legado do Console do OpenCode pode ter exposto chaves de API de OpenAI, Anthropic e outros provedores de 1,4% dos usuários

    O que está dito e o que falta

    Do post saem três dados com alguma firmeza. O primeiro é que o 1,4% é calculado sobre os usuários do Console. Não vale para todo mundo que usa o OpenCode, ferramenta aberta que qualquer um roda na própria máquina. O segundo é que os afetados formam um subconjunto de quem vinculou provedores externos à conta, ou seja, nem todo mundo que vinculou foi atingido. O terceiro é que, pela palavra da empresa, quem não recebeu e-mail está fora. Falta o principal para dimensionar o estrago: quantas pessoas cabem nesse 1,4%. O número absoluto não foi divulgado.

    A lista do que não se sabe é mais longa. A empresa não disse como os invasores entraram, que sistema legado era esse nem como as chaves estavam armazenadas. Também não se sabe se elas foram usadas, e o OpenCode afirma que ainda não consegue confirmar abuso. Os usuários contam outra história. Há relatos de cobranças não autorizadas em contas de provedores conectadas, e um deles calcula o prejuízo em US$ 400. Nenhum desses relatos foi verificado de forma independente até aqui. Sobre reembolso, a empresa não disse nada.

    Quem falou em destilação

    A ligação com destilação foi feita pelo próprio OpenCode, no post oficial. Não partiu da OpenAI, da Anthropic nem do Google, que não se pronunciaram publicamente sobre o incidente no que circulou até agora. Nenhum pesquisador ou empresa de segurança atribuiu o ataque a um grupo específico. E o OpenCode não explicou como relacionou o vazamento das chaves a um "ataque de destilação em larga escala".

    Dá para montar uma explicação plausível. Destilar um modelo de ponta exige um volume enorme de chamadas, e os provedores monitoram padrões de uso conta por conta. Um lote de chaves de clientes pagantes resolve dois problemas de quem destila. A conta vai para outra pessoa, e o tráfego se espalha por contas com histórico legítimo, que demoram mais a levantar suspeita. A hipótese combina com os relatos de cobranças inesperadas. Mas continua sendo hipótese, e a empresa não a apresentou.

    A frase sobre "trabalhar com Anthropic, OpenAI e Google para remediar" também admite duas leituras. Pode significar que os provedores detectaram o padrão abusivo e avisaram o OpenCode. Pode significar apenas uma coordenação para revogar chaves em massa. A frase serve para as duas, e só os envolvidos podem dizer qual é a verdadeira.

    O sistema que ia ser desligado

    De tudo o que foi dito, o único mecanismo confirmado é o mais banal: um sistema em processo de desativação ainda guardava chaves vivas de clientes. Não importa se o objetivo de quem entrou era destilar um modelo, revender acesso ou só queimar crédito alheio. As chaves estavam lá para serem levadas. Num desligamento bem conduzido, as credenciais são a primeira coisa a sair de um sistema condenado, porque todo o resto pode esperar. Pelo que o e-mail descreve, aqui a ordem foi outra.

    Por isso o rótulo de destilação, do jeito que foi lançado, mais atrapalha do que explica. Ele empurra a história para a disputa entre laboratórios sobre quem copia o modelo de quem, com um adversário sofisticado e externo. Para quem desenvolve, a pergunta que interessa é de custódia. Onde as chaves ficavam, em que formato, e por que ainda estavam acessíveis num sistema com data marcada para morrer. Se estavam cifradas, a empresa não disse.

    O melhor argumento a favor do OpenCode é a rapidez. O e-mail saiu menos de um dia depois da invasão. O post público trouxe um percentual, um critério claro para o usuário saber se foi atingido e o nome dos três provedores envolvidos. Muita empresa leva semanas para dizer menos que isso. Com o incidente em andamento, guardar detalhes do vetor de ataque é prática comum de resposta a incidentes e evita servir de manual para imitadores. E, se a destilação se confirmar, ter citado o termo cedo ajuda provedores e usuários a interpretar padrões de consumo estranhos.

    Concordo com quase tudo, mas a prudência cobre o vetor de ataque e não cobre as perguntas cuja resposta a empresa já tem. Quantas pessoas foram afetadas, como as chaves eram guardadas e se haverá reembolso não dependem do fim da investigação. E, entre todos os detalhes que poderia compartilhar, o OpenCode escolheu justamente o mais dramático e o menos documentado. Uma investigação em curso justifica ficar calado, mas não justifica soltar um rótulo sem lastro.

    Quem precisa se mexer

    • Usuário do Console que recebeu o e-mail: revogue e reemita as chaves no painel de cada provedor, e não dentro do OpenCode. Revise o consumo desde a noite de sexta, 16, e configure um limite de gasto. Se aparecer cobrança que você não reconhece, abra chamado no suporte do provedor.
    • Usuário do Console com provedores vinculados que não recebeu o e-mail: segundo a empresa, você está fora. Antes de relaxar, procure no spam pelo assunto citado acima. Como o incidente segue em andamento e trocar uma chave leva minutos, eu trocaria do mesmo jeito.
    • Quem roda o OpenCode só localmente, com chaves próprias: nada publicado até agora indica que essas chaves tenham sido expostas. Os comunicados tratam apenas de chaves salvas em workspaces do Console.

    O que vale levar daqui

    O caso serve de lembrete para quem entrega credenciais a ferramentas de terceiros, e quase tudo o que ajuda custa pouco:

    • Uma chave por ferramenta, nunca a chave principal da organização. Se uma vazar, você revoga essa e o resto continua funcionando.
    • Limite de gasto rígido no próprio provedor. Os controles do painel do terceiro não servem de nada quando o incidente é no terceiro.
    • Alertas de consumo. Neste caso, os primeiros relatos de dano vieram de cobranças inesperadas. Quem tinha alerta configurado soube antes de a fatura fechar.
    • Execução local quando o recurso hospedado não for indispensável. O risco mora onde a chave fica guardada, e uma chave numa variável de ambiente da sua máquina não estava no sistema legado de ninguém.
    • Perguntas diretas ao fornecedor: como os segredos são armazenados e o que acontece com eles quando um sistema é aposentado.

    O OpenCode promete mais detalhes quando o incidente terminar. A explicação que vale esperar é como um ataque de destilação foi parar num sistema que estava sendo desligado. A troca de chaves não precisa esperar por ela.

    Filipe Mendes

    Ver perfil completo