In 42 pacchetti NPM, TanStack integra un worm auto-replicante

A seguito della compromissione del processo di creazione delle release basato su GitHub Actions nel progetto TanStack, l'attaccante è riuscito a pubblicare 84 versioni malevole nel repository NPM, coinvolgendo 42 pacchetti NPM della stack TanStack. Alcuni di questi pacchetti compromessi hanno registrato oltre 10 milioni di download a settimana.

L'accesso alla pubblicazione delle release è stato ottenuto a causa di una configurazione errata del pull_request_target "Pwn Request" in GitHub Actions (l'indicazione della maschera nelle impostazioni ha portato all'esecuzione di pull_request_target per pull request in fork esterni), avvelenamento della cache di GitHub Actions attraverso il fork e la possibilità di estrarre il token OIDC dalla memoria del processo runner in esecuzione (Runner.Worker) leggendo il contenuto di /proc//mem.

I pacchetti NPM con modifiche malevole sono stati pubblicati l'11 maggio tra le 22:20 e le 22:26 (MSK), notati dopo 20 minuti e bloccati dopo un'ora e mezza. Per ciascuno dei pacchetti NPM compromessi sono state rilasciate due versioni malevole, integrate con codice per attivare il worm mini-shai-hulud, che cercava token e credenziali nell'ambiente corrente. In caso di rilevamento di un token di connessione al catalogo NPM, il worm pubblicava automaticamente nuove release malevole per i pacchetti sviluppati nell'ambiente corrente, compromettendo l'albero delle dipendenze. In questo modo sono stati compromessi oltre 400 pacchetti NPM che utilizzano pacchetti TanStack come dipendenze.

Il worm era contenuto nel file router_init.js e si attivava quando il pacchetto compromesso veniva installato manualmente dallo sviluppatore o automaticamente in un ambiente di integrazione continua tramite comandi "npm install", "pnpm install" o "yarn install". Dopo l'attivazione, il worm cercava nel sistema token per NPM (~/.npmrc), AWS, GCP, Azure, HashiCorp e KubernetesK8s, così come chiavi SSH private. I dati trovati venivano inviati agli attaccanti tramite il messenger decentralizzato P2P getsession.org.

Il worm era progettato per compiere azioni distruttive in caso di revoca del token NPM intercettato: nel sistema veniva impostato l'avvio periodico di uno script ~/.local/bin/gh-token-monitor.sh, che ogni 60 secondi controllava l'attività del token effettuando una chiamata a api.github.com/user e, in caso di revoca del token, eseguiva il comando "rm -rf ~/".

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster