یک حمله پیچیده زنجیره تأمین، چندین GitHub Action را به خطر انداخته و سکرتهای CI/CD را در دهها هزار مخزن افشا کرده است. این حمله که در ابتدا ابزار پرکاربرد “tj-actions/changed-files” را هدف قرار داده بود، اکنون گمان میرود که از یک نقض امنیتی در GitHub Action مربوط به “reviewdog/action-setup@v1” سرچشمه گرفته باشد.
کشف آسیبپذیری اولیه
آسیبپذیری اولیه در “tj-actions/changed-files” که با شناسه CVE-2025-30066 مشخص شده است، هفته گذشته کشف شد. محققان دریافتند که کد مخربی در این ابزار تزریق شده است. سازمان امنیت سایبری و زیرساختهای ایالات متحده (CISA) این مشکل را تأیید کرده و اعلام کرده است که: “این حمله زنجیره تأمین، امکان افشای اطلاعات محرمانه از جمله کلیدهای دسترسی معتبر، توکنهای دسترسی شخصی GitHub (PATs)، توکنهای npm و کلیدهای خصوصی RSA را فراهم میکند.”
CISA تأیید کرده است که این آسیبپذیری در نسخه 46.0.1 برطرف شده است.
از آنجا که این ابزار در بیش از ۲۳ هزار مخزن GitHub استفاده شده، مقیاس بالقوه این حمله باعث ایجاد نگرانیهای جدی در جامعه توسعهدهندگان شده است.
محققان امنیتی شرکت Wiz منشأ اصلی این نقض امنیتی گسترده را شناسایی کردهاند. بر اساس تحلیلهای آنها، مهاجمان ابتدا نسخه v1 از “reviewdog/action-setup” را به خطر انداخته و کدی مخرب را به آن تزریق کردهاند که هدف آن استخراج سکرتهای CI/CD و ذخیره آنها در لاگهای اجرایی بود.
از آنجا که “tj-actions/eslint-changed-files” از این کامپوننت reviewdog استفاده میکند، این رخنه اولیه مسیری را برای مهاجمان فراهم میکند تا توکن دسترسی شخصی (PAT) مربوط به سیستم “tj-actions” را سرقت کنند.
محققان Wiz در گزارش خود توضیح دادند: “ما معتقدیم که نقض امنیتی در “reviewdog/action-setup” احتمالاً علت اصلی به خطر افتادن PAT متعلق به tj-actions-bot بوده است.” زمان وقوع این دو رخداد امنیتی به یکدیگر نزدیک بوده و این ارتباط را تقویت میکند.
روش حمله شامل تکنیکی پیچیده بود که در آن مهاجمان داده رمزگذاریشده Base64 را در یک اسکریپت نصب تزریق کرده بودند. این اقدام باعث شد که اطلاعات محرمانه از فرآیندهای CI آسیبدیده در لاگهای اجرای workflow افشا شوند.
در مخازنی که لاگهای آنها عمومی است، این اطلاعات افشا شده برای مهاجمان در دسترس قرار گرفته و تهدید امنیتی قابل توجهی در سراسر اکوسیستم GitHub ایجاد کرده است.
ارزیابی تأثیر گسترده
توسعهدهندگان “tj-actions” پیشتر اعلام کرده بودند که نتوانستهاند مشخص کنند مهاجمان چگونه به توکن دسترسی شخصی GitHub دست یافتهاند. یافتههای جدید Wiz این حلقه گمشده را پر کرده و نشان میدهد که رخنه اولیه در “reviewdog/action-setup” نقطه شروع این زنجیره حمله بوده است.
علاوه بر تأیید آسیبپذیری در “reviewdog/action-setup@v1″، تحقیقات نشان دادهاند که چندین اکشن دیگر از همین توسعهدهنده نیز ممکن است تحت تأثیر قرار گرفته باشند، از جمله:
- reviewdog/action-shellcheck
- reviewdog/action-composite-template
- reviewdog/action-staticcheck
- reviewdog/action-ast-grep
- reviewdog/action-typos
دامنه کامل این آسیبپذیریها هنوز در حال بررسی است.
با اینکه GitHub و نگهدارندگان پروژه reviewdog اصلاحاتی را اعمال کردهاند، محققان Wiz هشدار دادهاند که اگر هنوز اکشنهای آسیبدیده در برخی پروژهها مورد استفاده قرار گیرند، احتمال وقوع مجدد حمله به “tj-actions/changed-files” همچنان وجود دارد، به ویژه اگر سکرت افشا شده تغییر نکنند.
واکنش و اقدامات اصلاحی
پس از افشای رخنه در “tj-actions”، گیتهاب سریعاً اقدام کرد و در تاریخ ۱۶ مارس دسترسی به نسخه آسیبدیده این ابزار را متوقف و نسخه اصلاح شدهای را جایگزین آن کرد (ورژنهای بالاتر از ۴۵.۰.۷). با این حال، اطلاعات جدید درباره ماهیت زنجیرهای این حمله نشان میدهد که پیامدهای امنیتی آن بسیار فراتر از ارزیابیهای اولیه است.
کارشناسان صنعت به ویژه در مورد نحوه رخنه به پروژه Reviewdog ابراز نگرانی کردهاند.
محققان Wiz اشاره کردهاند که این پروژه “دارای یک پایگاه مشارکتکنندگان گسترده است و از طریق دعوتهای خودکار اعضای جدید را میپذیرد،” که ممکن است باعث ایجاد ضعفهای امنیتی در ساختار مجوزهای آن شده باشد. این موضوع نشان میدهد که نحوه مدیریت دسترسیها در یک سازمان میتواند ناخواسته باعث ایجاد آسیبپذیریهای امنیتی در وابستگیهای پاییندستی شود.
استراتژیهای پیشگیری آینده
برای کاهش خطرات مشابه در آینده، متخصصان امنیتی چندین اقدام پیشگیرانه را توصیه میکنند. به جای استفاده از تگهای نسخه هنگام اجرای GitHub Actions، توسعهدهندگان باید اکشنهای خود را به هشهای مشخصی از کامیتها متصل کنند، زیرا این هشها تغییرناپذیر بوده و پس از ایجاد قابل اصلاح نیستند.
محققان Wiz همچنین پیشنهاد دادهاند که سازمانها از قابلیت “allow-listing” در GitHub استفاده کنند تا از اجرای اکشنهای غیرمجاز در محیطهای خود جلوگیری کنند.
این حادثه نشاندهنده روند رو به رشد حملات زنجیره تأمین است که ابزارها و زیرساختهای توسعه را هدف قرار میدهند. با توجه به اینکه سازمانها به طور فزایندهای بر اجزای شخص ثالث و اکشنهای اتوماسیون متکی هستند، تأثیر بالقوه چنین رخنههایی همچنان در حال افزایش است. یک رخنه در یک ابزار پرکاربرد میتواند به سرعت در هزاران پروژه گسترش یابد، که وابستگی متقابل در اکوسیستم مدرن توسعه نرمافزار را نشان میدهد.