آخرین اخبار
همهٔ اخبار
امنیت وب و نرم‌افزار گزارش بحرانیت ۸/۱۰

افشای آدرس‌های ایمیل GitLab؛ مسیری برای تزریق کد و دسترسی غیرمجاز

افشای آدرس‌های ایمیل GitLab؛ مسیری برای تزریق کد و دسترسی غیرمجاز

محققان شرکت امنیتی Aikido کشف کرده‌اند که برخی از آدرس‌های ایمیل خصوصی در GitLab، که به توسعه‌دهندگان اجازه ارسال Issue یا Task به پروژه‌ها را می‌دهد، به‌طور عمدی در فایل‌های README، راهنمای مشارکت (Contributing Guides) و صفحات پشتیبانی برای جمع‌آوری گزارش‌های باگ قرار داده شده‌اند.

مکانیسم آسیب‌پذیری

این آدرس‌ها بخشی از قابلیت داخلی GitLab با عنوان “Email work item to this project” هستند و شامل یک توکن بلندمدت (Long-lived token) مرتبط با حساب کاربر می‌باشند. این توکن‌ها به‌صورت خودکار تولید شده و به عنوان یک اعتبارنامه (Credential) برای ایجاد آیتم‌های کاری از طریق ایمیل عمل می‌کنند. هرگاه کلاینتی خارجی پیامی به این آدرس ارسال کند، GitLab آن را به عنوان یک Issue یا Task در پروژه پردازش می‌کند.

ریسک‌های امنیتی و سوءاستفاده

عوامل تهدید می‌توانند از این آدرس‌ها برای موارد زیر استفاده کنند:

  • تزریق کد (Push Code) به شاخه‌های محافظت‌شده (Protected Branches) در مخازن خصوصی.
  • سرقت کد منبع (Source Code).
  • استخراج اسرار (Secrets) از متغیرهای CI/CD.
  • دسترسی به Issueهای محرمانه.

محققان اشاره کردند که هر یک از این آدرس‌ها حاوی رشته glimt- هستند که به عنوان اعتبارنامه دسترسی عمل می‌کند. نکته بحرانی این است که مهاجم می‌تواند با تغییر پسوند -issue به -merge-request، یک درخواست ادغام (Merge Request) ایجاد کند و GitLab آن را به جای مالک توکن پذیرفته و پردازش می‌کند.

دور زدن مکانیزم‌های دفاعی

بر اساس تست‌های Aikido، این روش حمله حتی محدودیت‌های آدرس IP را نیز دور می‌زند. سطح دسترسی مهاجم کاملاً به مجوزهای حساب کاربری هدف بستگی دارد و می‌تواند منجر به تغییرات در کد یا اجرای Pipelineهای CI/CD شود. در پروژه‌های عمومی، مسیر و ID پروژه در دسترس است، اما در پروژه‌های خصوصی، مهاجم نیاز به نشت مسیر پروژه یا Brute-force کردن ID دارد.

پاسخ GitLab و توصیه‌ها

GitLab در مستندات خود هشدار داده است که این آدرس‌ها خصوصی هستند و هر کسی که به آن‌ها دسترسی داشته باشد، می‌تواند از طرف کاربر عمل کند. با این حال، Aikido گزارش داد که در ابتدا GitLab این مورد را به عنوان «رفتار مورد انتظار» (Intended Behavior) بسته بود، اما پس از گزارش مجدد، رابط کاربری (UI) خود را به‌روزرسانی کرد تا خطرات مربوط به Merge Requestها و دور زدن محدودیت‌های IP را مستند کند.

توصیه به مدیران پروژه: از قرار دادن این آدرس‌ها در مستندات عمومی خودداری کرده و در صورتی که پیش‌تر این کار را انجام داده‌اید، فوراً توکن‌های مربوطه را Reset کنید.