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