در ۲۱ اکتبر ۲۰۲۶ GitLab یک patch release بحرانی منتشر کرد که یکی از موارد آن CVE-2026-110264 است، با امتیاز CVSS 10.0 که بالاترین مقدار ممکن است. این ضعف در GitLab CE و EE وجود دارد و در شرایطی خاص به یک کاربر بدون احراز هویت اجازه میدهد روی سرور GitLab کد دلخواه اجرا کند. گزارش The Hacker News هم همین را پوشش داده است.
اگر GitLab را خودتان نصب و نگهداری میکنید (self-managed)، اول آپدیت کنید و بعد این مقاله را بخوانید.
خلاصه
| شناسه | CVE-2026-110264 |
| امتیاز | ۱۰٫۰ (Critical) |
| بردار | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| نوع ضعف | Integer Overflow در کامپایلر عبارت منظم (regex) |
| گزارشدهنده | joaxcar، از طریق برنامهی باگبانتی GitLab در HackerOne |
بردار یعنی: از راه شبکه، با پیچیدگی کم، بدون لاگین و بدون تعامل کاربر قابل بهرهبرداری است و روی محرمانگی، یکپارچگی و در دسترس بودن اثر کامل دارد.
ماجرا چیست؟
طبق توضیح GitLab، ضعف از یک integer overflow هنگام کامپایل یک regex دستساز میآید. بر اساس گزارش The Hacker News، این در موتور Onigmo اتفاق میافتد که موتور regex داخلی Ruby است و GitLab آن را همراه خودش ارائه و patch میکند.
نکتهی نگرانکننده این است که GitLab شرایط دقیق بهرهبرداری را اعلام نکرده. یعنی فعلاً نمیشود با یک تنظیم مشخص مطمئن شد که سرور شما در امان است. طبق گزارش، فعلاً نشانهای از بهرهبرداری فعال نیست و تا ۲۲ اکتبر در فهرست KEV سازمان CISA هم نیامده، ولی این وضعیت میتواند سریع عوض شود.
چه چیزهایی تحت تأثیرند؟
نسخههای آسیبپذیر، همهی نسخهها از ۷٫۰ تا پیش از اینها:
| شاخه | آسیبپذیر پیش از | نسخهی رفعشده |
|---|---|---|
| 19.5 | 19.5.1 | 19.5.1 |
| 19.4 | 19.4.3 | 19.4.3 |
| 19.3 | 19.3.6 | 19.3.6 |
| 19.2 | 19.2.9 | 19.2.9 |
| 19.1 | 19.1.9 | 19.1.9 |
| 19.0 | 19.0.10 | 19.0.10 |
| 7.0 تا 18.11 | 18.11.13 | 18.11.13 |
GitLab.com از قبل patch شده و تنها نصبهای self-managed باید اقدام کنند. tenantهای GitLab Dedicated با نسخهی 19.3.5-internal0 و 19.4.2-internal0 یا جدیدتر هم رفعشدهاند.
اگر بعد از ۱۲ اکتبر برای وصلهی CVE-2026-97229 (آن هم CVSS 10) آپدیت کردهاید، طبق گزارش The Hacker News آن نسخهها (19.2.8، 19.3.5 و 19.4.2) این مورد جدید را ندارند و باید یک بار دیگر آپدیت کنید.
چه کار کنیم؟
۱. آپدیت. به نسخهی رفعشدهی شاخهی خودتان بروید. GitLab هیچ workaround موقتی معرفی نکرده و آپدیت تنها راه مطمئن است.
۲. به migrationها توجه کنید. نسخههای 19.4.3 و 19.3.6 شامل migration دیتابیساند. روی سرور تکنود، آپدیت downtime دارد چون migration باید قبل از بالا آمدن GitLab تمام شود. روی نصب چندنودی میتوانید از روش zero-downtime استفاده کنید.
۳. تا زمان آپدیت، دسترسی را محدود کنید. اگر نمونهی GitLab شما از اینترنت در دسترس است و فوراً نمیتوانید آپدیت کنید، دسترسی را موقتاً با فایروال، VPN یا allowlist بسته نگه دارید. این توصیهی رسمی GitLab نیست و فقط یک اقدام احتیاطی عمومی است.
۴. شناسایی نفوذ. GitLab دو قاعدهی تشخیص برای نمونههای self-managed منتشر کرده: «Onigmo native worker crash» و «Org mode render error burst». اینها را روی لاگهای برنامه اجرا کنید (راهنما: Detecting security incidents). اگر نمونهتان تا الان از اینترنت قابل دسترس بوده، فایلها، توکنها و runnerهای ناشناس را هم بررسی کنید.
۵. توکنها و runnerها. چون GitLab معمولاً به کد، secretها و CI دسترسی دارد، در صورت شک به نفوذ، توکنها، متغیرهای CI و کلیدهای deploy را rotate کنید.