The self-replicating worm is integrated into 42 NPM packages of TanStack

Důsledkem kompromitace procesu vytváření release na základě GitHub Actions v projektu TanStack útočníkům podařilo zveřejnit v repozitáři NPM 84 škodlivé verze, pokrývající 42 NPM balíčků z balíčkové sady TanStack. Některé z kompromitovaných balíčků měly více než 10 milionů stažení týdně.

Přístup k publikaci release byl získán kvůli nesprávnému nastavení pull_request_target "Pwn Request" v GitHub Actions (určení masky v nastavení vedlo k spuštění pull_request_target pro pull requesty do cizích forků), kontaminaci cache GitHub Actions přes fork a možnosti extrakce OIDC tokenu z paměti spuštěného runner procesu (Runner.Worker) čtením obsahu /proc//mem.

Škodlivé NPM balíčky byly publikovány 11. května od 22:20 do 22:26 (MSK), zaznamenány po 20 minutách a blokovány po hodinu a půl. Pro každý z postižených NPM balíčků byly vydány dvě škodlivé verze, do kterých byl integrován kód k aktivaci červa mini-shai-hulud, který hledal tokeny a přihlašovací údaje v aktuálním prostředí. V případě, že byl nalezen token připojení k repozitáři NPM, červ automaticky publikoval nové škodlivé release pro balíčky vyvíjené v aktuálním prostředí, čímž zasáhl strom závislostí. Tímto způsobem bylo postiženo více než 400 NPM balíčků, které v závislostech používaly balíčky TanStack.

Červ byl umístěn v souboru router_init.js a aktivoval se při ruční instalaci postiženého balíčku vývojářem nebo automatizovaně v prostředí kontinuální integrace pomocí příkazů "npm install", "pnpm install" nebo "yarn install". Po aktivaci červ hledal v systému tokeny k NPM (~/.npmrc), AWS, GCP, Azure, HashiCorp a KubernetesK8s, stejně jako uzavřené SSH klíče. Nalezené údaje byly odesílány útočníkům přes decentralizovaný P2P messenger getsession.org.

V červu bylo navrženo provádění destruktivních akcí v případě odvolání zachyceného NPM tokenu — v systému byl nastaven pravidelný běh skriptu ~/.local/bin/gh-token-monitor.sh, který každých 60 sekund kontroloval aktivitu tokenu prostřednictvím dotazu na api.github.com/user a v případě odvolání tokenu provedl příkaz "rm -rf ~/".

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster