TanStack loyihasining GitHub Actions versiyasini chiqarish jarayonini buzish orqali tajovuzkorlar TanStack stekidan NPM omboriga 42 ta NPM paketining 84 ta zararli versiyasini nashr etishga muvaffaq bo'lishdi. Buzilgan paketlarning ba'zilari haftasiga 10 milliondan ortiq marta yuklab olingan.
Nashr nashriga kirish GitHub Actions’da noto‘g‘ri pull_request_target “Pwn Request” sozlamasi (sozlamalarda niqobni belgilash uchinchi tomon vilkalariga pull_request_target’ni ishga tushirishga olib keldi), GitHub Actions keshini vilka orqali zaharlash va /proc/ tarkibini o‘qish orqali ishlayotgan ishga tushirish jarayoni (Runner.Worker) xotirasidan OIDC tokenini ajratib olish imkoniyati tufayli olindi. /xotira.
Zararli modifikatsiyalarga ega NPM paketlari 11-may kuni soat 22:20 dan 22:26 gacha (MSK) e'lon qilindi, 20 daqiqadan so'ng aniqlandi va bir yarim soatdan keyin bloklandi. Har bir zararli NPM paketining ikkita zararli versiyasi chiqarildi, ularning har biri joriy muhitda tokenlar va hisob ma'lumotlarini qidiradigan mini-shai-hulud qurtini faollashtirish uchun kodni o'z ichiga oldi. Agar NPM katalogiga ulanish tokeni aniqlansa, qurt avtomatik ravishda joriy muhitda ishlab chiqilayotgan paketlar uchun yangi zararli versiyalarni nashr etdi va bu qaramlik daraxtiga ta'sir qildi. TanStack paketlarini qaramlik sifatida ishlatgan 400 dan ortiq NPM paketlariga shu tarzda ta'sir ko'rsatildi.
Chuvalchang router_init.js fayliga o'rnatildi va zararlangan paket ishlab chiquvchi tomonidan qo'lda yoki avtomatik ravishda uzluksiz integratsiya muhitida "npm install", "pnpm install" yoki "yarn install" buyruqlari yordamida o'rnatilganda faollashtirildi. Faollashtirilgandan so'ng, chuvalchang tizimda NPM (~/.npmrc), AWS, GCP, Azure, HashiCorp va KubernetesK8s uchun tokenlarni, shuningdek, SSH maxfiy kalitlarini qidirdi. U topgan ma'lumotlar hujumchilarga markazlashtirilmagan P2P messenjeri getsession.org orqali yuborildi.
Ushbu chuvalchang bekor qilingan NPM tokenida vayronkor harakatlarni bajarish uchun mo'ljallangan edi. Tizim vaqti-vaqti bilan ~/.local/bin/gh-token-monitor.sh skriptini ishga tushirish uchun sozlangan bo'lib, u har 60 soniyada api.github.com/user saytiga kirish orqali tokenning faolligini tekshirib turardi va token bekor qilingan taqdirda "rm -rf ~/" buyrug'ini bajarardi.
Manba: opennet.ru
