Violação de dados da Grafana Labs no GitHub em 2026
A violação de dados da Grafana Labs no GitHub em 2026 teve origem em um token de fluxo de trabalho do GitHub que vazou durante o ataque à cadeia de suprimentos Mini Shai-Hulud contra pacotes npm do TanStack e passou despercebido na resposta inicial.
A organização não divulgou quantos foram afetados, então não é possível classificar o incidente nesta escala.
Tipos de dados expostos
6- Código-fonte
- Informações operacionais internas
- Nomes dos contatos comerciais
- Endereços de e-mail corporativos
- Endereços de e-mail usados anteriormente em marketing
- GitHub workflow credentials
Sobre este vazamento
Os invasores usaram essa credencial para clonar o conjunto de repositórios da empresa. A análise final da Grafana Labs informa que um código malicioso foi executado em seus runners auto-hospedados em 11 de maio de 2026 e que a exfiltração dos repositórios começou em 14 de maio.
A empresa confirmou que o invasor baixou o código-fonte e repositórios que algumas equipes usavam para armazenar informações operacionais internas e outros dados comerciais. O conteúdo incluía nomes de contatos comerciais e endereços de e-mail compartilhados em relações profissionais, além de alguns endereços de e-mail usados em campanhas de marketing anteriores. A organização não publicou um total verificável de pessoas afetadas ou de registros. A ausência de um total divulgado não significa que o incidente não teve impacto; significa que as fontes públicas não fornecem um total confiável.
Como o incidente foi confirmado?
A análise pós-incidente publicada pela Grafana Labs em 23 de junho de 2026 informa que a investigação interna foi encerrada em 27 de maio e que uma investigação independente da Mandiant foi concluída em 18 de junho, corroborando as conclusões internas. A Mandiant não encontrou evidências de adulteração de código ou contaminação de repositórios em organizações públicas ou em repositórios de produção entregues aos usuários finais. O relatório final apresenta horários com precisão de minutos para a execução inicial, a exfiltração, a descoberta e a resposta.
As reportagens do BleepingComputer de 18 de maio e 20 de maio também descreveram o acesso ao ambiente da Grafana no GitHub por meio de um token roubado, o download de sua base de código e a recusa da empresa em pagar um resgate. As informações publicadas sobre a afiliação do invasor a um grupo e as declarações no site de vazamentos não substituem o escopo confirmado pela Grafana.
Como funcionou a cadeia de ataque?
Durante a campanha Mini Shai-Hulud, um código malicioso de pacotes npm do TanStack chegou a um fluxo de trabalho de CI/CD da Grafana e foi executado em runners auto-hospedados do GitHub em 11 de maio, causando o vazamento de credenciais. A Grafana rapidamente fez a rotação de um número significativo de tokens de fluxos de trabalho do GitHub, mas deixou passar um token de um fluxo de trabalho inicialmente considerado não afetado. O invasor usou essa credencial para acessar os repositórios privados da empresa.
Segundo a cronologia final, o invasor fez o primeiro commit malicioso com a identidade vazada grafana-delivery-bot às 07:21 UTC de 14 de maio, e a exfiltração dos repositórios começou às 13:28 daquele dia. Uma exigência de extorsão surgiu em 15 de maio. A equipe de segurança da Grafana tomou conhecimento da alegação em 16 de maio, confirmou o comprometimento mais tarde naquele dia e suspendeu ou fez a rotação dos aplicativos e das credenciais que se sabia terem sido afetados.
Quais dados foram baixados?
A principal categoria de dados confirmada é o conjunto completo de repositórios públicos e privados de código-fonte da Grafana. Os repositórios privados continham ferramentas internas e código de determinados recursos do Grafana Cloud. Alguns repositórios de equipes também continham informações operacionais internas, dados comerciais, nomes de contatos comerciais e endereços de e-mail usados em relações profissionais, além de endereços de e-mail usados em algumas campanhas de marketing anteriores.
As fontes públicas não permitem concluir que tenham sido roubados dados de produção de clientes, dados de observabilidade, senhas ou informações processadas pelo Grafana Cloud. A Grafana afirmou especificamente que os dados de contato não foram extraídos de sistemas de produção nem da plataforma Grafana Cloud. A empresa disponibilizou um canal de suporte para organizações que quisessem saber se endereços de seu domínio haviam sido identificados, mas não publicou um total de pessoas.
Os clientes ou a cadeia de suprimentos de software foram afetados?
A investigação interna e a análise da Mandiant confirmaram que não houve acesso não autorizado aos sistemas de produção dos clientes e que a plataforma Grafana Cloud não foi afetada. A Grafana auditou todos os commits, 1.200 repositórios, aplicativos do GitHub, runners e diversas fontes de logs de infraestrutura. A base de código baixada não foi alterada, e não foi encontrada contaminação nos repositórios públicos ou de produção entregues aos usuários.
Por isso, a Grafana não pediu aos clientes ou aos usuários de código aberto que removessem produtos, mudassem de versão ou tomassem outra medida emergencial específica para o incidente. As alterações feitas por meio da identidade controlada pelo invasor foram identificadas e revertidas; a empresa bloqueou temporariamente alterações no código e implantações, fez a rotação de credenciais e passou a adotar tokens de curta duração e escopo restrito. Essas limitações não anulam o roubo no GitHub, mas evitam que ele seja interpretado equivocadamente como uma violação dos sistemas de produção dos clientes.
Qual foi a exigência de resgate e como a empresa respondeu?
Em 16 de maio, a Grafana recebeu uma exigência de um agente de ameaça que buscava pagamento para impedir a publicação da base de código. Seguindo a orientação do FBI de que o pagamento não garante a recuperação e pode incentivar mais crimes, a empresa se recusou a pagar. As autoridades policiais federais foram notificadas. Totais de pessoas, campos de dados e alegações do agente de ameaça que não foram verificados não são tratados como parte do escopo público do incidente.
Durante a resposta, a Grafana suspendeu aplicativos do GitHub, bloqueou temporariamente alterações no código e implantações e cruzou logs do Vault, GitHub, Okta, Kubernetes, AWS, GCP e dos hosts. A empresa relatou 1.500 revisões de pull requests com foco em segurança, uma auditoria de 280 aplicativos do GitHub e uma ampla rotação de credenciais. A última credencial potencialmente acessível foi suspensa ou passou por rotação em 17 de maio.
Como interpretar este registro da LeakData?
A data do incidente se baseia na atividade técnica mais antiga que pode ser verificada em fontes públicas. O evento consiste na clonagem de um conjunto de repositórios por meio de um token roubado de fluxo de trabalho do GitHub e no download de uma quantidade limitada de informações de contatos comerciais armazenadas nesses repositórios. A organização não publicou um total verificável de pessoas afetadas ou de registros. A ausência de um total divulgado não significa que o incidente não teve impacto; significa que as fontes públicas não fornecem um total confiável.
Você deve considerar como categorias de dados confirmadas o código-fonte, as informações operacionais internas, os nomes de contatos comerciais, os endereços de e-mail comerciais e os endereços de e-mail usados em campanhas de marketing anteriores. Os sistemas de produção dos clientes, o Grafana Cloud, o código entregue aos usuários finais e a disponibilidade dos serviços não foram afetados. O registro poderá ser atualizado caso seja publicada uma quantificação do alcance; o zero atual significa que o número de pessoas únicas é desconhecido, não que nenhuma informação tenha sido exposta.
Verificação e método editorial
A LeakData compara o nome do incidente, a data, a quantidade de registros afetados e os tipos de dados expostos com fontes acessíveis. Campos não verificados não são apresentados como fatos, e os registros são atualizados quando novas evidências ficam disponíveis.
Informar dados ausentes ou incorretos