منتشر شده نسخه های اصلاحی سیستم کنترل منبع توزیع شده Git 2.26.2، 2.25.4، 2.24.3، 2.23.3، 2.22.4، 2.21.3، 2.20.4، 2.19.5، 2.18.4 و 2.17.5، در که حذف شد آسیب پذیری (CVE-2020-11008) یادآور مسئله، هفته گذشته حذف شد. این آسیبپذیری جدید بر کنترلکنندههای «credential.helper» نیز تأثیر میگذارد و هنگام ارسال یک URL با قالببندی خاص که حاوی یک کاراکتر خط جدید، یک میزبان خالی یا یک طرح درخواست نامشخص است، مورد سوء استفاده قرار میگیرد. هنگام پردازش چنین URL، credential.helper اطلاعاتی را درباره اعتبارنامه هایی ارسال می کند که با پروتکل درخواستی یا میزبان مورد دسترسی مطابقت ندارند.
برخلاف مشکل قبلی، هنگام سوء استفاده از یک آسیب پذیری جدید، مهاجم نمی تواند مستقیماً میزبانی را که اعتبار شخص دیگری از آن منتقل می شود، کنترل کند. اینکه چه اعتباری به بیرون درز می کند بستگی به نحوه مدیریت پارامتر "میزبان" از دست رفته در credential.helper دارد. هسته اصلی مشکل این است که فیلدهای خالی در URL توسط بسیاری از کنترل کننده های credential.helper به عنوان دستورالعمل هایی برای اعمال هر گونه اعتبار به درخواست فعلی تفسیر می شوند. بنابراین، credential.helper می تواند اعتبار ذخیره شده برای سرور دیگری را به سرور مهاجم مشخص شده در URL ارسال کند.
این مشکل هنگام انجام عملیاتی مانند "git clone" و "git fetch" رخ می دهد، اما در هنگام پردازش زیر ماژول ها خطرناک ترین است - هنگام انجام "git submodule update"، URL های مشخص شده در فایل .gitmodules از مخزن به طور خودکار پردازش می شوند. به عنوان یک راه حل برای جلوگیری از مشکل توصیه می شود هنگام دسترسی به مخازن عمومی از credential.helper استفاده نکنید و از "git clone" در حالت "-recurse-submodules" با مخازن علامت نخورده استفاده نکنید.
در نسخه های جدید Git ارائه شده است تصحیح از فراخوانی credential.helper برای URL های حاوی جلوگیری می کند ارزش های غیر قابل بازنمایی (به عنوان مثال، هنگام تعیین سه اسلش به جای دو - "http:///host" یا بدون طرح پروتکل - "http::ftp.example.com/"). این مشکل بر روی گردانندههای فروشگاه (ذخیرهسازی اطلاعات Git داخلی)، حافظه پنهان (حافظه پنهان داخلی اعتبارنامههای وارد شده) و osxkeychain (ذخیرهسازی macOS) تأثیر میگذارد. کنترل کننده Git Credential Manager (مخزن ویندوز) تحت تأثیر قرار نمی گیرد.