U 42 NPM paketa TanStack integrisan je samoproširujući crv

Zaradi kompromitacije procesa ustvarjanja izdaj na osnovi GitHub Actions v projektu TanStack je napadalec uspel objaviti v repozitoriju NPM 84 zlonamerne različice, ki zajemajo 42 NPM paketov iz nabora TanStack. Nekateri od kompromitiranih paketov so imeli več kot 10 milijonov prenosov na teden.

Dostop do objave izdaj je bil pridobljen zaradi napačne nastavitve pull_request_target „Pwn Request“ v GitHub Actions (nastavitev maske je pripeljala do aktivacije pull_request_target za pull zahtevke v zunanje forke), kontaminacije predpomnilnika GitHub Actions preko forka in možnosti pridobivanja OIDC žetona iz pomnilnika zagnanega runner procesa (Runner.Worker) preko branja vsebine /proc//mem.

NPM paketi z zlonamernimi spremembami so bili objavljeni 11. maja od 22:20 do 22:26 (MSK), opazili so jih po 20 minutah in jih blokirali po enem in pol uri. Za vsak od prizadetih NPM paketov so bile izdane dve zlonamerni različici, v katerih je bil integriran kód za aktivacijo črva mini-shai-hulud, ki išče žetone in poverilnice v trenutnem okolju. V primeru odkritja žetona za povezavo s katalogom NPM je črv samodejno objavil nove zlonamerne izdaje za pakete, ki se razvijajo v trenutnem okolju, s čimer je poškodoval drevo odvisnosti. Na ta način je bilo prizadetih več kot 400 NPM paketov, ki uporabljajo pakete TanStack med odvisnostmi.

Črv je bil nameščen v datoteki router_init.js in se je aktiviral ob ročni namestitvi prizadetega paketa s strani razvijalca ali avtomatizirano v okolju neprekinjenega integriranja z ukazi „npm install“, „pnpm install“ ali „yarn install“. Po aktivaciji je črv iskal v sistemu žetone za NPM (~/.npmrc), AWS, GCP, Azure, HashiCorp in Kubernetes K8s, ter zaprte ključev SSH. Najdene podatke so napadalci poslali preko decentraliziranega P2P sporočila getsession.org.

V črvu je bila predvidena izvedba destruktivnih dejanj v primeru umika prestreženega NPM žetona — v sistemu je bil nastavljen periodični zagon skripte ~/.local/bin/gh-token-monitor.sh, ki je vsake 60 sekund preverjal aktivnost žetona preko dostopa do api.github.com/user in v primeru umika žetona izvajal ukaz „rm -rf ~/“.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster