- شناسه CVE-2025-1677 :CVE
- CWE-770 :CWE
- yes :Advisory
- منتشر شده: آوریل 10, 2025
- به روز شده: آوریل 10, 2025
- امتیاز: 6.5
- نوع حمله: Resource Exhaustion
- اثر گذاری: Denial of Service (Dos)
- حوزه: سیستم مدیریت محتوا
- برند: GitLab
- محصول: GitLab
- وضعیتPublished :CVE
- No :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری انکار سرویس (DoS) در GitLab CE/EE به دلیل تخصیص منابع بدون محدودیت میباشد. در این وضعیت، مهاجم احراز هویتشده با دسترسی پایین میتواند با ارسال پیلودهای بسیار بزرگ در فرآیند Export پایپلاینهای CI ، مصرف حافظه و CPU سرور را بهشدت افزایش داده و اجرای GitLab را مختل یا بهطور کامل از دسترس خارج کند.
توضیحات
آسیبپذیری CVE‑2025‑1677 از نوع تخصیص منابع بدون محدودیت مطابق با CWE‑770 در GitLab CE/EE است و زمانی رخ میدهد که در عملیات Export پایپلاینهای CI هیچ محدودیت مشخصی برای اندازه یا پیچیدگی پیلود ورودی اعمال نمیشود. در این فرآیند، GitLab تلاش میکند تمام متادیتا، تنظیمات، تاریخچه و وابستگیهای پایپلاین را جمعآوری کرده و آنها را در قالب یک فایل آرشیوی خروجی سریالسازی کند. اما در نسخههای آسیبپذیر، هیچ مکانیزمی برای محدودسازی اندازه فایل، تعداد اجزا، عمق ساختار یا میزان دادههای تولیدشده توسط کاربر وجود ندارد.
مهاجمی که تنها به یک حساب کاربری احراز هویتشده با سطح دسترسی Member یا بالاتر دسترسی دارد، میتواند پایپلاینی با ساختار غیرطبیعی، بسیار بزرگ یا دارای تعداد زیادی stage، job، آرتیفکت و وابستگی ایجاد کند. سپس با فراخوانی API یا رابط وب GitLab برای انجام عملیات Export، پیلودی تولید میشود که پردازش آن منجر به مصرف کنترلنشده منابع سرور میگردد.
در جریان پردازش، GitLab ناچار است تمام این دادهها را در حافظه بارگذاری و سریالسازی کند؛ عملیاتی که میتواند مصرف RAM را به چندین گیگابایت رسانده و باعث افزایش شدید مصرف CPU شود. با عبور از ظرفیت منابع، فرآیند مربوطه کرش کرده و در بسیاری از موارد کل نمونه GitLab موقتاً یا کاملاً از دسترس خارج میشود. این ضعف بهصورت کامل از راه دور و بدون نیاز به تعامل اضافی کاربر قابل بهرهبرداری است و مهاجم میتواند با اسکریپت ساده (مانند ارسال درخواستهای بزرگ با curl) عملیات DoS را خودکارسازی کند. پیامد اصلی این آسیبپذیری، تاثیر بالا و شدید بر دسترسپذیری سرویس است. GitLab این ضعف را در نسخههای 17.8.7، 17.9.6 و 17.10.4 به طور کامل پچ کرده است و کاربران باید فوراً به نسخههای امن به روزرسانی کنند.
CVSS
| Score | Severity | Version | Vector String |
| 6.5 | MEDIUM | 3.1 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected from 0 before 17.8.7
affected from 17.9 before 17.9.6 affected from 17.10 before 17.10.4 |
GitLab |
لیست محصولات بروز شده
| Versions | Product |
| 17.8.7
17.9.6 17.10.4 |
GitLab |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که GitLab را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google
(Total Pages) |
Search Query (Dork) | Product |
| 583,000 | site:.ir “GitLab” | GitLab |
نتیجه گیری
این آسیبپذیری با شدت متوسط در GitLab از نوع انکار سرویس (DoS) است که میتواند با ارسال یک درخواست Export مخرب، عملکرد کل نمونه را مختل کرده یا آن را از دسترس خارج کند. با توجه به انتشار پچهای رسمی، اقدامات زیر برای کاهش ریسک و جلوگیری از حملات مشابه ضروری است:
- بهروزرسانی فوری: تمام نمونههای GitLab CE/EE را به یکی از نسخههای 17.8.7، 17.9.6 یا 17.10.4 و بالاتر به روزرسانی کنید. این اقدام، مؤثرترین و قطعیترین راهکار برای رفع آسیبپذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و میتوانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
- محدودیت در CI/CD: حداکثر اندازه فایل .gitlab-ci.yml و تعداد jobها در پروژهها را محدود کنید تا امکان ایجاد پایپلاینهای بسیار بزرگ کاهش یابد.
- کنترل دسترسی Export: عملیات Project Export و Group Export را فقط به نقشهای Maintainer یا Owner محدود کنید.
- محدودیت نرخ درخواستها (Rate Limiting): در لایه پروکسی معکوس (مانند NGINX، Traefik یا HAProxy) یا با GitLab Rate Limiter، تعداد درخواست Export هر کاربر/IP در دقیقه محدود شود.
- فعالسازی فایروال اپلیکیشن وب (WAF): با استفاده از Cloudflare، ModSecurity یا فایروال اپلیکیشن وب داخلی GitLab، پیلودهای بسیار بزرگ مسدود شوند.
- مانیتورینگ منابع: هشدار برای مصرف ناگهانی RAM/CPU در فرآیندهای Puma و Sidekiq تنظیم کنید تا حملات در لحظات اولیه شناسایی شوند.
- بازبینی دورهای پروژهها: پروژههای قدیمی یا دارای تعداد زیادی job را به صورت دورهای پاکسازی، محدود یا آرشیو کنید.
اجرای سریع بهروزرسانی فوری با محدودسازی دسترسیها و اعمال محدودیت نرخ درخواستها، ریسک بهرهبرداری موفق از این آسیبپذیری را به حداقل میرساند و سطح امنیت نمونه GitLab در برابر حملات DoS را بهشکل چشمگیری افزایش میدهد.
امکان استفاده در تاکتیک های Mitre Attack
Initial Access (TA0001)
مهاجم با یک حساب کاربری معتبر یا دسترسی حداقلی داخل پروژه، عملیات Export را تحریک میکند. این تاکتیک معمولاً بر پایه سوءاستفاده از قابلیتهای داخلی اپلیکیشن است و نیاز به حمله پیچیده بیرونی ندارد؛ بنابراین کنترل نقشها و محدودسازی Export مهمترین اقدام پیشگیرانه است.
Defense Evasion (TA0005)
حمله میتواند با استفاده از درخواستهای کاملاً معتبر و بدون Payload مخرب انجام شود، بنابراین از دید بسیاری از WAFها کاملاً عادی بهنظر میرسد. محدودیت نرخ، تحلیل الگوی رفتاری و مانیتورینگ مصرف منابع، تنها راه شناسایی الگوی حمله است.
Impact (TA0040)
هدف اصلی این حمله ایجاد اختلال در سرویس، بارگذاری بیش از حد CPU/RAM و از کار انداختن Puma یا Sidekiq است. نتیجه میتواند اختلال کامل در CI/CD، افت پاسخدهی API و حتی Down شدن GitLab باشد. پچ رسمی تنها راه حذف کامل بردار حمله است و سایر کنترلها نقش کاهشدهنده ریسک دارند.
منابع