5 pontos por GN⁺ 2025-09-17 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Um ataque à cadeia de suprimentos no ecossistema NPM injetou malware autorreplicante em mais de 40 pacotes, incluindo o popular @ctrl/tinycolor, o que pode causar infecção em cascata de segredos do ambiente de desenvolvimento e até de credenciais de CI/CD. As versões infectadas já foram removidas do npm
  • O payload do ataque executa de forma assíncrona um bundle Webpack (bundle.js, ~3.6MB) durante o processo de instalação via npm e realiza coleta abrangente de credenciais por meio de variáveis de ambiente, sistema de arquivos e SDKs de nuvem
  • A lógica maliciosa usa NpmModule.updatePackage para forçar patch e publicação de outros pacotes, promovendo propagação em cascata, e injeta o workflow shai-hulud no GitHub Actions para roubar segredos da organização com toJSON(secrets)
  • Os dados coletados são exfiltrados por meio da criação do repositório público no GitHub 'Shai-Hulud', disfarçando-se como atividade normal de desenvolvimento e com alta capacidade de evasão de detecção
  • A ação é executada de forma furtiva com acesso a endpoints de metadados e tokens de AWS/GCP/Azure/NPM/GitHub, além de busca de segredos baseada em TruffleHog
  • É exigida a remoção imediata dos pacotes, limpeza dos repositórios e substituição de todas as credenciais, além de verificação de logs do CloudTrail/GCP Audit, bloqueio de webhooks e adoção de proteção de branch/Secret Scanning/políticas de cooldown

Affected Packages

  • Foi reportado um total de 195 pacotes/versões, incluindo principalmente @ctrl/tinycolor(4.1.1, 4.1.2), vários pacotes no namespace @ctrl/, módulos da família @crowdstrike/, além de ngx-bootstrap/ngx-toastr/ng2-file-upload/ngx-color em todo o ecossistema de Angular/UI web, a stack mobile @nativescript-community/ e @nstudio/, a toolchain de ciências da vida teselagen/, além de ember-*, koa2-swagger-ui, pm2-gelf-json e wdio-web-reporter
  • Para cada pacote, é necessário consultar a tabela do texto original para verificar com precisão se as versões exatas estão em uso
    • Exemplo: @ctrl/ngx-emoji-mart 9.2.1, 9.2.2, @ctrl/qbittorrent 9.7.1, 9.7.2, ngx-bootstrap 18.1.4, 19.0.3–20.0.5, ng2-file-upload 7.0.2–9.0.1 etc., em ampla escala

Immediate Actions Required

Identify and Remove Compromised Packages

  • Verifique se há pacotes infectados no projeto: use npm ls @ctrl/tinycolor e comandos semelhantes
  • Remova imediatamente os pacotes infectados: execute npm uninstall @ctrl/tinycolor e equivalentes
  • Verifique vestígios locais buscando o hash conhecido do bundle.js: use sha256sum | grep 46faab8a...

Clean Infected Repositories

  • Remova o workflow malicioso do GitHub Actions: exclua .github/workflows/shai-hulud-workflow.yml
  • Detecte e remova o branch remoto shai-hulud criado: execute git ls-remote ... | grep shai-hulud e depois git push origin --delete shai-hulud

Rotate All Credentials Immediately

  • É necessária a substituição completa de tokens do NPM, segredos do GitHub PAT/Actions, chaves SSH, credenciais de AWS/GCP/Azure, strings de conexão de banco de dados, tokens de terceiros e segredos de CI/CD
  • Também é necessária a rotação completa dos itens armazenados em AWS Secrets Manager/GCP Secret Manager

Audit Cloud Infrastructure for Compromise

  • AWS: no CloudTrail, verifique horários e padrões de chamadas BatchGetSecretValue, ListSecrets e GetSecretValue, e confirme criação/uso anormal de chaves com o IAM Credential Report
  • GCP: use os Audit Logs para revisar acessos ao Secret Manager e verificar a existência de eventos CreateServiceAccountKey

Ainda não há comentários.

Ainda não há comentários.