یک آسیبپذیری امنیتی بسیار شدید با شناسه CVE-2026-85706 در پلتفرم GitLab کشف شده است که به مهاجمان اجازه میدهد بدون نیاز به احراز هویت (Unauthenticated)، فایلهای دلخواه را از روی سرور بخوانند. این نقص امنیتی با امتیاز CVSS 10.0 رتبهبندی شده که نشاندهنده سطح بحرانی بودن آن است.
جزئیات فنی و مکانیسم حمله
این آسیبپذیری در نقطه انتهایی (Endpoint) مربوط به POST /api/v4/projects/:id/repository/commits رخ میدهد. دلیل این نقص، پردازش پارامتر file.path توسط helper مربوط به body-upload پیش از مرحله احراز هویت است. از آنجایی که سیستم در محدود کردن این پارامتر به مسیرهای مخزن (Repository paths) شکست میخورد، یک مهاجم میتواند GitLab را مجبور کند تا فایلهای دلخواهی که برای پروسه سرویس GitLab قابل دسترسی هستند را بخواند.
مهاجمان میتوانند با استفاده از URL-encoding روی یکی از کاراکترهای مسیر commits (به عنوان مثال استفاده از %63ommits)، مکانیزم مدیریت مسیر در GitLab Workhorse را دور بزنند، در حالی که Rails همچنان درخواست را پردازش میکند. در صورت ترکیب این روش با یک درخواست فرم URL-encoded، محتوای فایلهایی که دارای توالیهای نامعتبر percent-encoding هستند، در پاسخ خطای سرور منعکس میشوند.
پیامدهای امنیتی
بهرهبرداری موفق از این آسیبپذیری میتواند منجر به افشای موارد حساس زیر شود:
- لاگهای اپلیکیشن (Application logs)
- فایلهای پیکربندی (Configuration files)
- اعتبارنامههای دیتابیس (Database credentials)
- فایلهای حساس مانند
gitlab-secrets.jsonوdatabase.yml
دسترسی به این اسرار (Secrets) و اعتبارنامهها میتواند به مهاجم اجازه دهد تا دسترسی احراز شده به سیستم پیدا کرده و در نهایت منجر به تسخیر کامل (Full Compromise) نمونه GitLab شود.
نسخههای آسیبپذیر و اقدامات اصلاحی
این آسیبپذیری نسخههای زیر از GitLab CE/EE را تحت تاثیر قرار میدهد:
- نسخههای 18.7 تا 19.1.7
- نسخههای 19.2.0 تا 19.2.5
- نسخههای 19.3.0 تا 19.3.1
با توجه به اینکه این آسیبپذیری در فهرست CISA KEV (آسیبپذیریهای مورد بهرهبرداری شناخته شده) قرار گرفته و کد اکسپلویت (PoC) آن به صورت عمومی منتشر شده است، توصیه میشود مدیران سیستمها فوراً اقدامات زیر را انجام دهند:
- بهروزرسانی سریع به نسخههای 19.1.8، 19.2.6، 19.3.2 یا نسخههای جدیدتر.
- در صورتی که نمونه GitLab در معرض اینترنت بوده است، تمامی اعتبارنامهها و اسرار (Secrets) احتمالی که ممکن است افشا شده باشند، تغییر داده شوند (Rotate).