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

Zbog kompromitacije procesa kreiranja izdanja temeljenog na GitHub Actions u projektu TanStack, napadačima je uspjelo objaviti 84 zlonamjerne verzije u NPM repozitoriju, koje obuhvaćaju 42 NPM paketa iz TanStack stoga. Neki od kompromitiranih paketa zabilježili su više od 10 milijuna preuzimanja tjedno.

Pristup publikaciji izdanja dobiven je zbog pogrešne konfiguracije pull_request_target „Pwn Request“ u GitHub Actions (naredba za maskiranje u postavkama uzrokovala je pokretanje pull_request_target za pull zahtjeve iz vanjskih forkova), kontaminacije predmemorije GitHub Actions putem forka i mogućnosti izvlačenja OIDC tokena iz memorije pokrenutog runner procesa (Runner.Worker) putem čitanja sadržaja /proc//mem.

NPM paketi sa zlonamjernim izmjenama objavljeni su 11. svibnja između 22:20 i 22:26 (MSK), uočeni su 20 minuta kasnije i blokirani nakon sat i pol. Za svaki od pogođenih NPM paketa izdane su po dvije zlonamjerne verzije, u koje je integriran kod za aktivaciju crva mini-shai-hulud, koji pretražuje tokene i vjerodajnice u trenutnom okruženju. U slučaju otkrivanja konekcijskog tokena do NPM direktorija, crv automatski objavljuje nove zlonamjerne verzije za pakete razvijane u trenutnom okruženju, zahvaćajući stablo zavisnosti. Na taj način pogođeno je više od 400 NPM paketa koja koriste TanStack pakete kao zavisnosti.

Crv se nalazio u datoteci router_init.js i aktivirao se prilikom ručne instalacije pogođenog paketa od strane programera ili automatizirano u okruženju kontinuirane integracije pomoću komandi „npm install“, „pnpm install“ ili „yarn install“. Nakon aktivacije, crv pretražuje sustav za tokene do NPM (~/.npmrc), AWS, GCP, Azure, HashiCorp i KubernetesK8s, kao i SSH privatne ključeve. Pronađeni podaci slali su se napadačima putem decentraliziranog P2P messengera getsession.org.

U crvu je bila predviđena izvršavanje destruktivnih radnji u slučaju povlačenja presretnutog NPM tokena — u sustavu je postavljen periodički rad skripte ~/.local/bin/gh-token-monitor.sh, koja svakih 60 sekundi provjerava aktivnost tokena putem zahtjeva na api.github.com/user, a u slučaju povlačenja tokena izvršava naredbu „rm -rf ~/“.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster