
Quatro bibliotecas publicadas pelo mesmo usuário no npm entregam roubo de credenciais, coleta de segredos de desenvolvimento e uma carga em Go associada ao Phantom Bot.
| Componente | Pacotes npm chalk-tempalte, @deadcode09284814/axios-util, axois-utils e color-style-utils, todos associados ao usuário deadcode09284814. |
| Vetor | Instalação de dependências maliciosas no ecossistema npm, incluindo nomes com aparência de utilitários JavaScript e possível confusão tipográfica em relação a bibliotecas legítimas. |
| Impacto | Execução de cargas de roubo de informação, exposição de tokens do GitHub, chaves SSH, variáveis de ambiente, credenciais de nuvem, dados de sistema, endereço IP, carteiras de criptomoedas e instalação do Phantom Bot com persistência em Windows e Linux. |
| Prioridade | Remover imediatamente os pacotes afetados, bloquear os destinos de comando e controle conhecidos, revisar repositórios GitHub criados com tokens expostos e rotacionar todos os segredos acessíveis ao ambiente comprometido. |
| Artefatos | chalk-tempalte teve 825 downloads, @deadcode09284814/axios-util teve 284 downloads, axois-utils teve 963 downloads e color-style-utils teve 934 downloads no momento da análise. |
| IoCs | 87e0bbc636999b.lhr[.]life, 80.200.28[.]28:2222, edcf8b03c84634.lhr[.]life e repositórios GitHub públicos com a descrição A Mini Sha1-Hulud has Appeared. |
Quatro pacotes maliciosos no npm foram identificados entregando cargas diferentes, embora tenham sido publicados pelo mesmo usuário, deadcode09284814. A atividade combina abuso de cadeia de suprimentos, roubo de segredos de desenvolvimento e implantação de botnet. Os pacotes envolvidos são chalk-tempalte, @deadcode09284814/axios-util, axois-utils e color-style-utils. A escolha dos nomes indica tentativa de parecer compatível com dependências comuns de projetos JavaScript, inclusive com grafia semelhante a nomes conhecidos. Esse tipo de vetor afeta diretamente estáções de desenvolvimento, pipelines de CI/CD, ambientes de build e projetos que permitem instalação automática de dependências sem validação de origem.
A carga mais agressiva aparece em axois-utils, que entrega o Phantom Bot, uma botnet escrita em Go com capacidade de gerar tráfego de negação de serviço por HTTP, TCP e UDP. Os demais pacotes carregam funcionalidades de infostealer. chalk-tempalte incorpora uma cópia funcional do código do worm Shai-Hulud disponibilizado publicamente pelo TeamPCP, com servidor de comando e controle e chave privada próprios. @deadcode09284814/axios-util e color-style-utils adotam coleta mais direta de segredos, incluindo chaves SSH, variáveis de ambiente, credenciais de nuvem, dados do sistema, endereço IP e informações de carteiras de criptomoedas. A exposição é crítica porque ambientes de desenvolvimento costumam concentrar permissões de publicação, acesso a repositórios e credenciais de infraestrutura.
O fluxo de comprometimento começa quando um projeto instala um dos pacotes afetados a partir do npm. A execução pode ocorrer durante o ciclo normal de instalação, importação ou uso do pacote, dependendo da estrutura interna de cada biblioteca. Como os pacotes foram distribuídos pelo registro público, o risco se concentra em projetos que adicionaram a dependência diretamente, aceitaram sugestões de assistentes de código sem revisão, copiaram comandos de instalação de fontes não confiáveis ou tinham automações capazes de resolver novas dependências. Em um ambiente de build, a execução do payload pode ter acesso a variáveis de ambiente, tokens de publicação, credenciais cloud temporárias e arquivos de configuração usados por ferramentas de desenvolvimento.
axois-utils se diferencia por instalar uma carga em Go relacionada ao Phantom Bot. Depois da execução, o malware prepara persistência em Windows e Linux. Em Windows, a técnica descrita envolve inclusão do payload na pasta de inicialização e criação de tarefa agendada, o que permite reexecução após reinicialização ou novo logon. Em Linux, a persistência também é configurada para manter o binário ativo. A capacidade de DDoS usa tráfego por HTTP, TCP e UDP, permitindo alternar entre requisições de camada de aplicação e volume de pacotes em protocolos de transporte. Mesmo que a máquina comprometida não contenha dados sensíveis, ela passa a integrar infraestrutura ofensiva para inundação de alvos externos.
chalk-tempalte usa uma variante baseada no código do Shai-Hulud. A carga rouba credenciais e envia os dados para 87e0bbc636999b.lhr[.]life. Além da exfiltração direta, o fluxo usa token do GitHub furtado para criar um repositório público via API e publicar os dados coletados, com descrição A Mini Sha1-Hulud has Appeared.. Esse comportamento amplia o impacto porque transforma uma credencial de desenvolvimento em mecanismo de vazamento público. Já @deadcode09284814/axios-util envia dados para 80.200.28[.]28:2222, enquanto color-style-utils usa edcf8b03c84634.lhr[.]life. A separação de destinos sugere cargas independentes, não apenas uma variação cosmética do mesmo pacote.
A superfície exposta inclui qualquer estáção de trabalho, executor de CI/CD, contêiner de build, ambiente de teste ou servidor que tenha instalado as bibliotecas afetadas. O risco é maior quando a instalação ocorreu em diretórios com acesso a arquivos de usuário, chaves SSH em ~/.ssh, tokens de GitHub, variáveis de ambiente contendo credenciais cloud, arquivos de configuração de ferramentas de infraestrutura como código ou carteiras de criptomoedas. Em organizações que usam agentes de codificação e IDEs com automações, a presença desses pacotes também exige revisar configurações locais, porque integrações de desenvolvimento podem carregar comandos, extensões ou dependências de forma pouco visível para o operador.
Os nomes dos pacotes também aumentam a exposição por erro operacional. axois-utils se parece com uma inversão de letras de axios, enquanto chalk-tempalte contém grafia semelhante a template. Em ecossistemas com instalação rápida de dependências, esse padrão é suficiente para capturar usuários que digitam nomes manualmente ou aceitam sugestões sem verificar mantenedor, histórico e integridade. A contagem de downloads informada para cada pacote indica que houve distribuição real: chalk-tempalte com 825 downloads, @deadcode09284814/axios-util com 284, axois-utils com 963 e color-style-utils com 934. Download não confirma execução, mas define o conjunto inicial de ambientes que precisam ser investigados.
- Projetos com entradas em
package.json,package-lock.json,npm-shrinkwrap.json,yarn.lockoupnpm-lock.yamlcontendochalk-tempalte,@deadcode09284814/axios-util,axois-utilsoucolor-style-utils. - Estáções de desenvolvimento e runners de CI/CD com variáveis de ambiente contendo tokens do GitHub, credenciais de nuvem, chaves de publicação npm ou segredos de deploy.
- Contas GitHub com repositórios públicos inesperados contendo a descrição
A Mini Sha1-Hulud has Appeared..
A investigação deve começar pelo inventário de dependências e pelo histórico de builds. Procure referências aos quatro pacotes em manifests, lockfiles, caches do npm, logs de instalação e imagens de contêiner construídas no período em que as dependências estiveram presentes. Em pipelines, verifique jobs que executaram npm install, npm ci ou comandos equivalentes com permissões para acessar segredos. A presença do pacote em lockfile é suficiente para abrir investigação, porque a execução pode ter ocorrido em um runner efêmero cujo sistema de arquivos já não existe. Nesse caso, a reconstrução deve usar logs do CI/CD, registros de auditoria do provedor cloud, eventos do GitHub e histórico de rotação de credenciais.
No endpoint, a telemetria deve buscar criação de tarefas agendadas, alterações em pastas de inicialização no Windows, novos binários em caminhos temporários ou diretórios de usuário e conexões de saída para os destinos identificados. Em Linux, avalie arquivos de inicialização, serviços criados sem change request, processos em Go com nomes não associados ao projeto e conexões persistentes para infraestrutura externa. Para o fluxo baseado em GitHub, pesquise chamadas de API criando repositórios a partir de hosts de desenvolvimento, especialmente quando a conta do usuário ou token de automação não deveria criar repositórios públicos. Em rede, bloqueios e alertas devem cobrir 87e0bbc636999b.lhr[.]life, 80.200.28[.]28:2222 e edcf8b03c84634.lhr[.]life.
A detecção não deve depender apenas dos IoCs, porque pacotes maliciosos publicados no npm podem ser republicados com novos nomes e novos destinos. Regras comportamentais são mais robustas: pacote JavaScript iniciando binário Go, script de instalação lendo ~/.ssh, processo de build enumerando variáveis de ambiente, criação de repositório GitHub sem ação humana, conexão de saída para domínio recém-observado logo após instalação de dependência e modificação de mecanismos de persistência por processo descendente de node ou npm. Essas relações entre processo pai, leitura de segredos e tráfego externo ajudam a separar comportamento legítimo de automações esperadas.
- Consultas em repositórios e lockfiles por
chalk-tempalte,@deadcode09284814/axios-util,axois-utilsecolor-style-utils. - Conexões de saída para
87e0bbc636999b.lhr[.]life,80.200.28[.]28:2222eedcf8b03c84634.lhr[.]lifea partir de workstations, runners ou contêineres de build. - Eventos do GitHub indicando criação de repositórios públicos inesperados com a descrição
A Mini Sha1-Hulud has Appeared.. - Criação de tarefas agendadas no Windows ou persistência em pasta de inicialização logo após execução de
npm installounpm ci. - Acesso incomum a chaves SSH, variáveis de ambiente, credenciais cloud e arquivos de carteira por processos descendentes de
node.
A primeira ação é remover os pacotes afetados de manifests e lockfiles, limpar caches de dependências e reconstruir artefatos a partir de uma árvore de dependências revisada. A simples desinstalação local não encerra o incidente se o pacote já executou com acesso a segredos. Tokens do GitHub, chaves SSH, credenciais de nuvem, tokens npm, segredos de CI/CD e credenciais presentes em variáveis de ambiente devem ser considerados expostos quando o pacote foi instalado em um ambiente com acesso a esses dados. A rotação precisa abranger contas humanas e contas de serviço, além de revogar sessões e tokens antigos para impedir reutilização após a remoção do malware.
Em hosts onde axois-utils foi instalado, trate o caso como possível comprometimento persistente. Revise tarefas agendadas, itens de inicialização, serviços, processos em execução e binários recentes. Bloqueie os destinos de rede conhecidos e investigue qualquer tráfego de DDoS por HTTP, TCP ou UDP originado do ambiente. Em hosts onde chalk-tempalte, @deadcode09284814/axios-util ou color-style-utils foram instalados, concentre a contenção em exfiltração de segredos e ações realizadas com tokens roubados. No GitHub, pesquise repositórios públicos criados automaticamente, remova dados vazados, invalide credenciais presentes nesses repositórios e revise permissões de tokens que permitiam criação de repositórios via API.
A prevenção deve combinar controles de cadeia de suprimentos e segregação de segredos. Ambientes de CI/CD não devem expor credenciais amplas para etapas que apenas instalam dependências. Use permissões mínimas, tokens de curta duração, allowlists de pacotes quando viável e revisão de mantenedor antes de adicionar novas bibliotecas. Bloqueie instalação automática de pacotes com nomes recém-criados em projetos sensíveis, valide alterações em lockfiles em revisão de código e monitore dependências com grafia semelhante a bibliotecas populares. A resposta também deve incluir uma busca retroativa em logs para confirmar se os domínios e o IP identificados foram acessados antes do bloqueio.
- Remover
chalk-tempalte,@deadcode09284814/axios-util,axois-utilsecolor-style-utilsde manifests, lockfiles, caches, imagens de build e ambientes de desenvolvimento. - Rotacionar tokens do GitHub, chaves SSH, credenciais cloud, tokens npm, segredos de CI/CD e qualquer segredo acessível ao processo que instalou o pacote.
- Bloquear
87e0bbc636999b.lhr[.]life,80.200.28[.]28:2222eedcf8b03c84634.lhr[.]lifeem controles de saída, proxy, DNS e EDR quando suportado. - Inspecionar tarefas agendadas, pastas de inicialização, serviços e novos binários em hosts Windows e Linux que instalaram
axois-utils. - Auditar GitHub em busca de repositórios públicos inesperados com a descrição
A Mini Sha1-Hulud has Appeared.e revogar os tokens envolvidos.
0 Comentários