Uma campanha de ataque à cadeia de suprimentos de software, rastreada como GHAPPIER, foi descoberta explorando contas de desenvolvedores comprometidas para injetar código malicioso em repositórios do GitHub e publicar pacotes npm envenenados. A operação afetou 65 repositórios e 22 contas, demonstrando a fragilidade dos controles de acesso e publicação automatizada em ambientes de desenvolvimento modernos.
Estratégia de Invasão e Escopo
O ataque começou em 9 de setembro de 2026, quando um intruso utilizou a conta mantenedora de @dforge-core/dforge-mcp por 15 minutos. Os pesquisadores da CloudSEK não confirmaram exatamente como o acesso foi obtido, mas apontam que uma máquina de desenvolvedor infectada, extensão ou pacote prévio é uma rota plausível para as credenciais. O atacante inseriu um carregador remoto, alterou três linhas no código para que pushes na branch principal iniciassem um workflow de publicação e reescreveu esse workflow para publicação desatendida.
A versão maliciosa do pacote @dforge-core/dforge-mcp@0.2.21 permaneceu como a última versão do registro por 35 minutos e 38 segundos antes que o mantenedor restaurasse o projeto e lançasse a versão limpa 0.2.22. O pacote alterado carregava proveniência válida do npm, criada pelo GitHub Actions usando OpenID Connect trusted publishing, e sua atestação no Sigstore registrava o commit do atacante.
Vetor de Entrega e Carga Maliciosa
O carregador malicioso estava oculto em uma linha próxima à linha 3.320 de um arquivo de 99 KB e iniciou uma cadeia de quatro estágios. Seu componente final se auto-excluiu, reduzindo a chance de que uma busca em disco encontrasse o implante. Os pesquisadores afirmaram que todos os estágios ainda respondiam quando testados cinco dias após a retirada do pacote.
A revisão mais ampla da CloudSEK conectou uma segunda família de payloads em outro repositório vítima ao PolinRider, uma campanha documentada que anexa silenciosamente código aos arquivos reais de configuração do projeto. O payload lê informações de comando e controle (C2) de uma transação blockchain Ethereum em vez de usar um domínio ou host normal. O relatório notou que uma correspondência exata ainda estava fazendo beaconing quando a pesquisa foi escrita.
Implicações para Governança de Segurança
O caso destaca por que a publicação confiável, o acesso ao controle de origem e os dispositivos de desenvolvedores pertencem à mesma fronteira de segurança. O acesso de gravação ao repositório tornou-se acesso de publicação, um risco também visto quando pacotes npm são comprometidos em escala. As organizações devem pinar o pacote afetado na versão 0.2.22 e revisar se a versão 0.2.21 foi instalada ou executada.
Medidas de Mitigação Recomendadas
As equipes devem bloquear o endpoint socket e os nomes de host de entrega identificados na pesquisa completa, enquanto procuram artefatos deixados pela cadeia em vez de apenas o implante que se autodeleta. Além disso, é necessário auditar alterações no workflow de lançamento, restringir o acesso de gravação na branch principal, girar credenciais expostas e preservar logs de controle de fonte.