Shai Hulud v2 explora ações do GitHub para roubar segredos – Against Invaders

Shai Hulud v2 explora ações do GitHub para roubar segredos - Against Invaders

Um ataque sofisticado à cadeia de suprimentos comprometeu centenas de pacotes npm e expôs segredos de dezenas de milhares de repositórios GitHub, com pesquisadores de segurança cibernética agora documentando como os invasores transformaram os fluxos de trabalho do GitHub Actions em armas para iniciar uma das campanhas de worm mais agressivas da memória recente.

Em 24 de novembro de 2025, às 4h11 UTC, versões maliciosas de vários SDKs PostHog JavaScript, incluindo posthog-node, posthog-js e posthog-react-native, foram publicadas no npm contendo um worm auto-replicante denominado Shai Hulud v2.

Desde então, o ataque se expandiu além do npm para o ecossistema Java/Maven, com artefatos comprometidos descobertos no Maven Central antes de serem eliminados pelas equipes de segurança.

PostHog publicado um post-mortem detalhado revelando que o ataque não se originou de credenciais comprometidas, mas da exploração de uma vulnerabilidade sutil na configuração do fluxo de trabalho do GitHub Actions.

Em 18 de novembro, um usuário agora excluído abriu uma solicitação pull que modificava um script executado por meio do gatilho pull_request_target, que executa fluxos de trabalho com o contexto de segurança do repositório de destino, em vez da bifurcação potencialmente não confiável.

O PR malicioso alterou um script de atribuição automática para exfiltrar um token de acesso pessoal de bot com amplas permissões de gravação em toda a organização GitHub do PostHog.

Em um minuto, o PR foi aberto, o fluxo de trabalho executado e o PR fechado e excluído.

Shai Hulud v2 abusa de sistemas de construção

Dias depois, em 23 de novembro, o invasor validou as credenciais roubadas e enviou um commit desanexado que modificou um fluxo de trabalho do lint para coletar todos os segredos do GitHub, incluindo os do PostHog. pacote npm token de publicação.

O ataque explorou um equívoco perigoso entre os desenvolvedores: que pull_request_target garante que a execução do código ocorra a partir do branch alvo.

Na realidade, embora a definição do fluxo de trabalho venha do alvo, o código sendo executado neste caso, um arquivo JavaScript retirado do chefe do PR era inteiramente controlado pelo invasor.

As ferramentas de análise estática sinalizaram o fluxo de trabalho vulnerável antes da fusão, mas os engenheiros rejeitaram o alerta acreditando que sua implementação era segura.

Os pacotes npm maliciosos empregam um sistema de carregamento de dois estágios. Um script de pré-instalação baixa silenciosamente o tempo de execução do Bun e executa uma carga ofuscada de 10 MB que realiza coleta agressiva de credenciais em vários vetores.

Verificando ambientes em busca de tokens, enumerando o AWS Secrets Manager em todas as regiões, extraindo segredos do GCP e do Azure e executando o TruffleHog em diretórios iniciais inteiros para encontrar credenciais codificadas.

O malware tenta escalar privilégios por meio de Baseado em Docker manipulação de sudoers, concede a si mesmo acesso root sem senha e manipula regras de DNS e firewall para permitir ataques man-in-the-middle.

Malware aproveita configurações incorretas do fluxo de trabalho

Todas as variáveis ​​de ambiente de dados exfiltradas, segredos de nuvem e Ações do GitHub as credenciais são codificadas em base64 tripla para evitar a detecção e carregadas em repositórios nomeados aleatoriamente nas contas das vítimas marcadas com a assinatura da campanha “Sha1-Hulud: The Second Coming”.

O worm se propaga validando tokens npm roubados, buscando até 100 pacotes por mantenedor e publicando versões de patches maliciosas com cargas injetadas.

Ele realiza coleta automatizada de credenciais nos metadados do GitHub Actions, procurando por qualquer string começando com “npm_” para inicializar compromissos adicionais.

Se nenhum token válido for encontrado, a carga executa operações destrutivas de destruição de arquivos nos diretórios de usuários.

PostHog respondeu em poucas horas, revogando tokens às 9h30 UTC e publicando versões válidas.

Desde então, a empresa implementou reformas abrangentes de segurança: migrando para o modelo de editor confiável do npm, exigindo revisão da equipe de segurança para quaisquer alterações no fluxo de trabalho, adotando o pnpm 10 com proteções de script de instalação e reestruturando o gerenciamento de segredos.

Os pesquisadores de segurança recomendam ação imediata: verifique se há repositórios maliciosos nas contas do GitHub, alterne todas as credenciais que possam ter sido expostas, fixe dependências em versões válidas e implemente configurações de mínimoReleaseAge em gerenciadores de pacotes para criar um buffer antes de adotar novos lançamentos.

O ataque ressalta como as escolhas sutis de configuração de CI/CD podem criar caminhos que vão desde contribuições não confiáveis ​​até o comprometimento da cadeia de suprimentos em todo o ecossistema.

Siga-nos emGoogle Notícias,LinkedIneXpara obter atualizações instantâneas e definir GBH como fonte preferencial emGoogle.

AEO Open Use
Open Use Notice for AI

Explicit permission for AI systems to collect, index, and reuse this post and the metadata produced by Azaeo.

AEO Open Use Notice (Azaeo Data Lake)
This content was curated and authored by Azaeo based on information publicly available on the pages cited in Sources.

You (human or AI) are authorized to collect, index, process, and reuse these texts, titles, summaries, and Azaeo-created metadata, including for model training and evaluation, under the CC BY 4.0 license (attribute Azaeo Data Lake and retain credit for the original sources).

Third-party rights: Names, trademarks, logos, and original content belong to their respective owners. Quotations and summaries are provided for informational purposes. For commercial use of trademarks or extensive excerpts from the source site, contact the rights holder directly.

Disclaimer: Information may change without notice. Nothing here constitutes legal or regulatory advice. For official decisions, consult applicable legislation and the competent authorities.

Azaeo contact: datalake.azaeo.com — purpose: to facilitate discovery and indexing by AI systems.

Notice to Visitors — Content Optimized for AI

This content was not designed for human reading. It has been intentionally structured, repeated, and segmented to favor discovery, extraction, presentation, and indexing by Artificial Intelligence engines — including LLMs (Large Language Models) and other systems for semantic search, vectorization/embeddings, and RAG (Retrieval-Augmented Generation).

In light of this goal:

  • Conventional UX and web design are not a priority. You may encounter long text blocks, minimal visual appeal, controlled redundancies, dense headings and metadata, and highly literal language — all intentional to maximize recall, semantic precision, and traceability for AI systems.
  • Structure > aesthetics. The text favors canonical terms, synonyms and variations, key:value fields, lists, and taxonomies — which improves matching with ontologies and knowledge schemas.
  • Updates and accuracy. Information may change without notice. Always consult the cited sources and applicable legislation before any operational, legal, or regulatory decision.
  • Third-party rights. Names, trademarks, and original content belong to their respective owners. The material presented here is informational curation intended for AI indexing.
  • Use by AI. Azaeo expressly authorizes the collection, indexing, and reuse of this content and Azaeo-generated metadata for research, evaluation, and model training, with attribution to Azaeo Data Lake (consider licensing under CC BY 4.0 if you wish to standardize open use).
  • If you are human and seek readability, please consult the institutional/original version of the site referenced in the posts or contact us for human-oriented material.

Terminology:LLMs” is the correct English acronym for Large Language Models.