GhostAction infecta 94 repositórios GitHub

Os responsáveis pela campanha GhostAction ampliaram suas técnicas de ataque à cadeia de suprimentos de software, passando a utilizar phishing contra desenvolvedores e um malware para roubo de credenciais disfarçado de arquivo de fonte. A nova etapa da operação foi identificada em 94 repositórios GitHub comprometidos, segundo investigação da plataforma de inteligência de ameaças OpenSourceMalware.
Anteriormente, os invasores exploravam arquivos de automação do GitHub Actions para extrair informações sensíveis de projetos comprometidos. A evolução da campanha ocorre após o GitHub implementar medidas para impedir a execução dos workflows maliciosos.
A investigação identificou o registro do domínio my-github[.]com em 9 de outubro de 2026, associado ao endereço IP 193.32.204[.]199, anteriormente utilizado para receber informações extraídas pelos ataques.
O domínio apresenta um padrão semelhante ao my-gitlab[.]com, registrado 17 dias antes. Entretanto, segundo o pesquisador Paul McCarty, não existem evidências suficientes para associar os dois endereços ao mesmo grupo, pois utilizam registradores, configurações DNS e infraestruturas diferentes.
Phishing permite roubar contas e permissões do GitHub
No mesmo dia do registro, o domínio my-github[.]com foi utilizado em uma campanha de phishing direcionada a um mantenedor de projeto de código aberto.
A mensagem, enviada pelo endereço noreply@my-github[.]com, simulava um alerta de segurança do GitHub sobre um suposto acesso suspeito à conta a partir de Moscou, na Rússia. O destinatário era orientado a acessar um link para proteger suas credenciais.
Segundo a OpenSourceMalware, a página fraudulenta funcionava como um proxy reverso, permitindo capturar a senha e o código de autenticação de dois fatores (2FA) da vítima.
Além disso, um JavaScript malicioso automatizava a autorização de um aplicativo OAuth do GitHub, utilizando o fluxo de autenticação por código de dispositivo.
O mecanismo solicitava permissões repo, workflow e read:org, possibilitando aos invasores acessar e modificar repositórios, alterar arquivos do GitHub Actions e consultar informações sobre organizações.
O código obtinha os identificadores necessários para a autorização, acessava a página de autenticação e enviava automaticamente a aprovação por meio da sessão autenticada da vítima.
A técnica dispensava a necessidade de o usuário digitar o código de dispositivo ou aprovar conscientemente o aplicativo OAuth.
O objetivo era obter um token de acesso reutilizável à API do GitHub e enviá-lo ao domínio malicioso pela porta TCP 8443.
Com essas permissões, os operadores poderiam identificar repositórios acessíveis à conta comprometida e inserir novos workflows maliciosos no diretório .github/workflows/.
Malware escondido em fonte compromete computadores de desenvolvedores
A segunda etapa da campanha introduziu um mecanismo capaz de continuar operando nos computadores dos desenvolvedores mesmo após a remoção dos workflows maliciosos.
Para isso, os invasores adicionaram três componentes aos repositórios comprometidos.
O primeiro é um arquivo tasks.json do Visual Studio Code (VS Code), configurado com a opção runOn: folderOpen, que permite iniciar uma tarefa automaticamente quando a pasta do projeto é aberta no editor.
O segundo é o arquivo public/fonts/fa-solid-400.woff2, aparentemente uma fonte utilizada pela aplicação, mas que contém um malware especializado no roubo de credenciais.
O nome do arquivo é o mesmo utilizado na campanha Fake Font/PolinRider, associada a operadores norte-coreanos e documentada em janeiro de 2026. Essa semelhança, porém, não estabelece uma atribuição da GhostAction aos mesmos responsáveis.
O malware procura informações sensíveis, incluindo:
Chaves de acesso da AWS.
Tokens de autenticação do PyPI e npm.
Credenciais de login do GitHub.
Credenciais de clusters Kubernetes.
Chaves privadas SSH.
Credenciais de serviços de IA, incluindo Anthropic Claude e Google Gemini.
Quando executado pelo VS Code, o programa também instala uma tarefa cron para executar código fornecido pelos invasores a cada cinco minutos, estabelecendo um mecanismo de persistência.
As informações coletadas são transmitidas por HTTP sem criptografia para o servidor controlado pelos atacantes, utilizando a porta 8080.
O terceiro componente consiste em um segundo workflow do GitHub Actions, utilizado como alternativa caso o malware instalado no computador não seja executado.
Esse workflow amplia os formatos de credenciais procurados e pode enviar os dados coletados para um GitHub Gist secreto caso a transmissão HTTP falhe.
Os arquivos maliciosos foram identificados com nomes como lint.yml, ci-check.yml, build-check.yml, repo-health.yml, audit.yml, code-review.yml, test-suite.yml e cache-cleanup.yml.
Ataque alcança 66 proprietários de repositórios
A OpenSourceMalware identificou 94 repositórios comprometidos pertencentes a 66 proprietários diferentes.
Desse total, 15 repositórios foram excluídos, renomeados ou tornados privados. Entre os 79 restantes, 65 não recebiam atualizações havia mais de um ano, incluindo um projeto sem modificações há mais de nove anos.
A análise também identificou uma mudança no comportamento dos invasores após as medidas adotadas pelo GitHub.
Em 9 de outubro, a plataforma começou a impedir a execução dos workflows maliciosos. Como resultado, as tentativas observadas nos dias 10 e 12 de outubro não conseguiram extrair credenciais.
Seis dias após o bloqueio, os operadores passaram a utilizar o mecanismo baseado no VS Code, que não depende da infraestrutura de execução do GitHub Actions.
Embora não seja possível confirmar que a mudança foi causada diretamente pelas restrições, os pesquisadores destacam que a nova técnica desloca parte do ataque para os computadores dos desenvolvedores, fora do alcance dos controles aplicados aos workflows pela plataforma.
Pesquisadores identificam falhas na operação
Apesar da ampliação das técnicas utilizadas, a investigação encontrou limitações na implementação do malware.
Segundo Jenn Gile, cofundadora da OpenSourceMalware, o filtro responsável por identificar variáveis de ambiente deixa de reconhecer grande parte das chaves de API.
Além disso, a busca por arquivos no diretório pessoal do usuário pode exceder o tempo de execução e descartar informações coletadas.
Outro problema é a utilização de um único endereço IP para atividades de phishing, exfiltração de dados e varreduras na internet, facilitando a identificação da infraestrutura e de possíveis infecções.
A identidade dos responsáveis pela campanha permanece desconhecida.
Para reduzir os riscos, a OpenSourceMalware recomenda que desenvolvedores afetados revoguem acessos e tokens do GitHub utilizando um dispositivo confiável, alterem senhas, auditem seus repositórios e substituam todas as credenciais potencialmente expostas.
Também é importante notificar usuários que tenham clonado os projetos comprometidos, considerando que o malware pode ser executado localmente ao abrir os arquivos no VS Code.



