حمله زنجیره تأمین TeamPCP به npm و PyPI
خلاصهٔ کاملتر
گروه هکری TeamPCP در ۱۱ مه ۲۰۲۶ یک حمله هماهنگ زنجیره تأمین (Supply Chain Attack) رو علیه اکوسیستمهای npm و PyPI اجرا کرد. پکیجهای آلودهشده شامل @tanstack/react-router (با تقریباً ۱۲ میلیون دانلود هفتگی)، پکیجهای @uipath، کلاینت رسمی @mistralai/mistralai، و پکیج پایتونی guardrails-ai میشه.
چطور حمله به TanStack اتفاق افتاد؟ مهاجم یک فورک از ریپوزیتوری TanStack/router ساخت و اون رو با اسم zblgg/configuration پنهان کرد تا توی لیست فورکها دیده نشه. بعد با باز کردن یک Pull Request، یک workflow از نوع pull_request_target رو تریگر کرد که کد مهاجم رو اجرا کرد و کَش GitHub Actions رو آلوده کرد. وقتی نگهدارندههای اصلی پروژه PR مرج کردن، فرآیند ریلیز همون کَش مسموم رو بازیابی کرد. مهاجم از طریق خواندن مستقیم حافظه فرآیند (/proc//mem) توکن OIDC رو دزدید و بدون نیاز به اعتبارنامه npm، پکیج مخرب رو منتشر کرد.
بدافزار یک کرم خودانتشاردهنده و یک دزد اعتبارنامهست. توکنهای CI/CD (GitHub Actions، GitLab، CircleCI)، کردنشالهای ابری (AWS، GCP، Azure)، سرویساکانتهای Kubernetes، HashiCorp Vault، و توکنهای پکیجریجستری رو هدف میگیره. با استفاده از توکنهای دزدیدهشده، نسخههای مسموم پکیجهای دیگهای که قربانی بهشون دسترسی نوشتن داره رو منتشر میکنه و اینطوری مثل یک کرم در اکوسیستم npm گسترش پیدا میکنه.
یکی از قابلیتهای خطرناک این بدافزار، نصب یک دیمون پایدار به اسم gh-token-monitor روی ماشین توسعهدهندهست. این سرویس هر ۶۰ ثانیه توکن GitHub رو چک میکنه و اگر توکن لغو بشه، دستور rm -rf ~/ رو اجرا میکنه تا دایرکتوری خانگی کاربر رو پاک کنه. دیمون روی macOS از طریق LaunchAgent و روی Linux از طریق systemd نصب میشه و بعد از ۲۴ ساعت بهصورت خودکار خاموش میشه.
دادههای دزدیدهشده از طریق سه کانال موازی ارسال میشن: یک دامنه تایپواسکوات (git-tanstack[.]com)، شبکه پیامرسان غیرمتمرکز Session، و GitHub API با استفاده از توکنهای دزدیدهشده. کانال Session بهخاطر غیرمتمرکز و رمزنگاریشده بودنش، خاموش کردنش خیلی سختتره.
نسخه پایتونی این بدافزار (در پکیجهای guardrails-ai@0.10.1 و mistralai@2.4.6) فقط روی لینوکس اجرا میشه و علاوه بر دزدیدن اعتبارنامهها، برای اولین بار رمزهای عبور ذخیرهشده در ۱Password و Bitwarden رو هم هدف میگیره. اگر سیستم در اسرائیل یا ایران باشه (بر اساس timezone و زبان)، با احتمال یکششم یک فایل صوتی پخش و rm -rf رو اجرا میکنه.
اقدامات فوری پیشنهادی:
- در lockfileها و لاگهای CI دنبال نسخههای آلوده بگرد
- قبل از لغو توکنهای GitHub، دیمون gh-token-monitor رو پیدا و حذف کن
- تمام کردنشالها (GitHub، npm، AWS، Vault، Kubernetes) رو روتیت کن
- پوشههای .claude/ و .vscode/ رو برای فایلهای router_runtime.js یا setup.mjs بررسی کن
- دامنههای git-tanstack.com و *.getsession.org رو در سطح DNS بلاک کن
نکات کلیدی:
- TeamPCP در ۱۱ مه ۲۰۲۶ به npm و PyPI حمله زنجیره تأمین هماهنگ زد
- @tanstack/react-router با ۱۲ میلیون دانلود هفتگی از پکیجهای اصلی آلودهشدهست
- بدافزار با دزدیدن توکن OIDC از حافظه runner، بدون نیاز به پسورد npm پکیج منتشر کرد
- سرویس gh-token-monitor در صورت لغو توکن، دستور rm -rf ~/ رو اجرا میکنه
- سه کانال اکسفیلتریشن موازی از جمله شبکه غیرمتمرکز Session استفاده شده
- نسخه پایتونی برای اولین بار رمزهای ۱Password و Bitwarden رو هدف میگیره
- قبل از لغو توکن GitHub حتماً دیمون مخرب رو حذف کن




