پروژه Git بهروزرسانیهای امنیتی جدیدی را برای رفع یک نقص امنیتی منتشر کرده است که میتواند به مهاجمان اجازه دهد در حین عملیات Recursive Clone (کلون بازگشتی)، کدهای مخرب خود را روی سیستم قربانی اجرا کنند.
جزئیات فنی آسیبپذیری CVE-2026-111760
این آسیبپذیری که با شناسه CVE-2026-111760 شناخته میشود، ناشی از یک خطای Integer Truncation (بریدگی عدد صحیح) در نحوه مدیریت Index توسط Git است. در این سناریو، یک مسیر بسیار طولانی در مخزن میتواند از بررسیهای امنیتی Git عبور کند، اما سپس Git آن را با نامی کوتاهتر روی دیسک مینویسد. مهاجم میتواند از این نقص برای ایجاد فایلی با نام .git استفاده کند.
این فرآیند به مهاجم اجازه میدهد تا فایل .git مربوط به یک Submodule را با یک Symbolic Link (لینک نمادین) جایگزین کند که به پوشهای حاوی Hooks یا تنظیمات مخرب اشاره دارد. از آنجایی که Git در هنگام کار با Submoduleها، .git را به صورت یک فایل در نظر میگیرد، این جایگزینی امکانپذیر است و منجر به اجرای خودکار کدهای مهاجم میشود.
نسخههای اصلاحشده و اقدامات لازم
پروژه Git این مشکل را در نسخه 2.56.1 برطرف کرده است. همچنین اصلاحاتی برای نسخههای سری 2.50 تا 2.55 در نسخههای زیر منتشر شده است:
- 2.50.2
- 2.51.3
- 2.52.1
- 2.53.1
- 2.54.1
- 2.55.1
GitHub اعلام کرده است که این اصلاحات را در سرویسهای github.com و GitHub Enterprise Cloud اعمال کرده است. همچنین برای کاربران GitHub Enterprise Server، نسخههای 3.19.15، 3.20.11، 3.21.9 و 3.22.4 شامل این وصلها هستند. بهروزرسانی برای GitHub Desktop و GitHub Copilot نیز در حال آمادهسازی است.
آسیبپذیریهای دیگر و راهکارهای موقت
علاوه بر مورد فوق، پنج نقص دیگر نیز در Git اصلاح شده است. یکی از این موارد (CVE-2026-105437) مربوط به دستور git merge-tree است که میتواند سرورهای میزبانی کد را هدف قرار دهد. در این حالت، اگر سرور ویژگیهای (Attributes) مخزن را بخواند، یک کاربر میتواند با ارسال یک Pull Request مخرب، کد خود را اجرا کند. به عنوان راهکار موقت برای سرورهایی که هنوز قادر به ارتقا نیستند، پیشنهاد میشود ویژگی conflict-marker-size در فایلهای تنظیمات هر مخزن غیرفعال شود.