گیتهاب (GitHub) بهتازگی تغییراتی را در مکانیزم Trusted Publishing برای بستههای npm اعمال کرده است تا از احتمال هایجک شدن (Hijacking) این بستهها جلوگیری کند. این اقدام پس از آن صورت گرفت که پژوهشگران امنیتی دریافتند مهاجمان میتوانند بدون نیاز به سرقت اعتبارنامهها (Credentials)، نسخههای جدیدی از بستههای متعلق به کاربران دیگر را منتشر کنند.
جزئیات فنی آسیبپذیری و مکانیزم حمله
مکانیزم Trusted Publishing که در ژوئیه ۲۰۲۵ معرفی شد، روشی برای احراز هویت بدون نیاز به رمز عبور (Credential-free) است که به توسعهدهندگان اجازه میدهد از طریق پلتفرمهای CI/CD (مانند GitHub Actions) و با استفاده از توکنهای OIDC، بستههای npm را منتشر کنند. این روش نیاز به ذخیرهسازی و مدیریت دستی Secretهای طولانیمدت را از بین میبرد.
با این حال، شرکت امنیتی Bloom Security حفرهای را در نحوه شناسایی مخازن (Repositories) پیدا کرد. در این سیستم، گیتهاب بهجای استفاده از شناسه عددی و دائمی (Permanent ID)، از اسلاگ (Slug) یا همان ترکیب «نام مالک/نام مخزن» استفاده میکرد. این یعنی اعتماد سیستم به یک «نام» متصل بود نه به یک «شناسه تغییرناپذیر».
حمله SlugFest و مخاطرات زنجیره تأمین
در حملهای که با نام SlugFest شناخته میشود، اگر یک توسعهدهنده نام مخزن خود را تغییر دهد یا آن را حذف کند، اسلاگ مربوطه آزاد میشود. مهاجم میتواند سریعاً آن اسلاگ را تصاحب کرده و از اعتماد پیشفرض سیستم برای انتشار نسخههای مخرب از بسته نرمافزاری قربانی استفاده کند. این نسخه مخرب، اعتبار، تعداد دانلود و وابستگیهای بسته اصلی را به ارث میبرد و منجر به یک حمله زنجیره تأمین (Supply Chain Attack) در مقیاس گسترده میشود.
یکی از نکات نگرانکننده در این گزارش، نقش عوامل هوش مصنوعی (AI Agents) است. این ایجنتها که روی سیستم توسعهدهندگان اجرا میشوند، وابستگیها را بهطور خودکار بهروزرسانی کرده و معمولاً آخرین نسخه را بدون بررسی دقیق منشأ بسته دریافت میکنند. این امر باعث میشود کد مخرب بدون دخالت انسان، بهسرعت در محیطهای توسعه سرایت کند.
اقدامات اصلاحی و آمارهای تکمیلی
گیتهاب برای رفع این مشکل، قوانین جدیدی را وضع کرده است:
- تنظیمات Trusted Publishing که تأیید نشده باشند، ۴۸ ساعت پس از ایجاد منقضی میشوند.
- تنظیمات تنها پس از اولین انتشار موفقیتآمیز، اعتبارسنجی شده و به شناسه تغییرناپذیر (Immutable Identity) مخزن متصل میشوند.
- هرگونه تغییر در هویت پروژه یا مخزن، منجر به ایجاد یک پنجره اعتبارسنجی ۴۸ ساعته جدید میشود.
پژوهشگران اعلام کردند که بیش از ۱۵۰۰ بسته آسیبپذیر را شناسایی کردهاند که در مجموع بیش از ۱۰ میلیون بار دانلود شدهاند. همچنین اشاره شد که الگوهای مشابهی در VS Code Marketplace و Open VSX مشاهده شده است (تحت عنوان Extension Resurrection) که در آن مهاجمان میتوانند با تصاحب فضای نامهای (Namespace) رها شده، افزونههای مخرب را جایگزین کرده و دسترسی RCE به سیستم میزبان پیدا کنند.