یک آسیبپذیری حیاتی در Git شناسایی شده است (CVE-2021-29468)، که فقط هنگام ساختن برای محیط Cygwin (کتابخانهای برای شبیهسازی API اصلی Linux در ویندوز و مجموعهای از برنامههای لینوکس استاندارد برای ویندوز) ظاهر میشود. این آسیبپذیری به کد مهاجم اجازه میدهد هنگام بازیابی دادهها ("git checkout") از مخزنی که توسط مهاجم کنترل میشود، اجرا شود. مشکل در بسته git 2.31.1-2 برای Cygwin برطرف شده است. در پروژه اصلی Git، مشکل هنوز برطرف نشده است (بعید است که شخصی به جای استفاده از یک بسته آماده، git را برای Cygwin با دست خود بسازد).
این آسیبپذیری ناشی از پردازش Cygwin از محیط بهعنوان یک سیستم یونیکس مانند به جای ویندوز است، که منجر به هیچ محدودیتی در استفاده از کاراکتر '\' در مسیر نمیشود، در حالی که در Cygwin، مانند ویندوز، این کاراکتر میتواند برای جدا کردن دایرکتوری ها استفاده می شود. در نتیجه، با ایجاد یک مخزن اصلاح شده ویژه حاوی پیوندهای نمادین و فایلهایی با کاراکتر بک اسلش، امکان بازنویسی فایلهای دلخواه هنگام بارگیری این مخزن در Cygwin وجود دارد (یک آسیبپذیری مشابه در Git برای ویندوز در سال ۲۰۱۹ برطرف شد). با به دست آوردن توانایی بازنویسی فایلها، مهاجم میتواند فراخوانیهای هوک را در git لغو کرده و باعث شود کد دلخواه بر روی سیستم اجرا شود.
منبع: opennet.ru