کمیته رکن چهارم – حین اجرای یک بازرسی کد، X41 چند آسیبپذیری را در سیستم کنترل نسخه گیت شناسایی کرد. روز هفدهم ژانویه، پروژه گیت دو مورد از مهمترین آسیبپذیریهای امنیتی با کدهای CVE-2022-23521 و CVE-2022-41903 را رفع کرد. این دو آسیبپذیری امکان اجرای کدهای دلخواه را از راه دور فراهم میکردند. گیتهاب و گیتلب بهروزرسانیهایی برای محصولاتشان منتشر کردند از جمله جدیدترین نسخه از گیت. آسیبپذیری سوم (CVE-2022-41953) هم بر نسخه ویندوز نرمافزار رابط کاربری گرافیکی گیت تأثیرگذار بوده و میتوانست منجر به اجرای کدهای دلخواه شود.
CERT-EU ارتقا به جدیدترین نسخه از گیت را به شدت توصیه میکند. همچنین در صورت کار با سرورهای درون سازمانی گیتهاب یا گیتلب توصیه میشود آنها را هم بهروزرسانی کنید.
جزئیات فنی
- CVE-2022-23521
گیت میتواند با استفاده از فرمان فرعی log کامیتها را با قالب دلخواه نمایش دهد (با استفاده از کاراکتر — و سپس مشخصکننده قالب). بعلاوه، گیت این قابلیت را از طریق git archive و با استفاده از صفت export-subst فاش میکند.
هنگام پردازش عملیات پدینگ یعنی %<( ، %<|(، %>(، %>>( یا %><( ممکن است خطای سرریز عدد صحیح رخ دهد. این سرریز میتواند منجر به نوشتن کدهای دلخواه در هیپ شود که ممکن است امکان اجرای کد از راه دور را فراهم کند. کاربران میتوانند با اجرای فرمانی که از قالب کامیت استفاده میکند مثل git log –format=… این رفتار را فعال کنند. مهاجم میتواند به صورت غیرمستقیم و از طریق git archive و سازوکار export-subst باعث سرریز شود. این فرمان، حین اجرای آرشیو گیت، تعیین کنندههای قالب درون فایلهای مخزن را گسترش میدهد.
- CVE-2022-41903
گیت برای تعیین ویژگیهای مسیرها از gitattributes استفاده میکند. کاربران میتوانند با اضافه کردن یک فایل .gitattributes به مخزن این ویژگیها را تعریف کنند. این فایل، حاوی مجموعهای از الگوهای فایل و ویژگیهایی است که گیت باید برای تطبیق مسیرها آنها را تنظیم کند.
زمانی که گیت تعداد زیادی الگو یا تعداد زیادی ویژگی برای یک الگوی خاص را تحلیل میکند یا زمانی که نامهای تعیین شده برای ویژگیها بسیار بزرگ باشد، ممکن است سرریز عدد صحیح رخ دهد. مهاجم میتواند از طریق فایل .gitattributes ساخته شدهای که ممکن است بخشی از تاریخچه کامیت باشد، باعث ایجاد این سرریزها شود. شکست اجرا بستگی به این دارد که آیا فایلها در درخت یا اندیس کاری و یا هر دو وجود داشته باشند یا خیر. گیت، خطوط طولانیتر از ۲ کیلوبایت را هنگام تحلیل ویژگیها از طریق فایلها تقسیم میکند اما هنگام تحلیل آنها از یک اندیس این کار را انجام نمیدهد.
در حالت دوم، سرریز میتواند منجر به خواندن و نوشتن دلخواه از هیپ شود که میتواند به اجرای کد از راه دور کمک کند.
- CVE-2022-41953
رابط کاربری گرافیکی گیت ابزاری است که به همراه گیت ویندوز ارایه میشود. پس از تکثیر یک مخزن، این رابط کاربری به صورت خودکار آن را پس-پردازش میکند. پس-پردازش در صورت امکان، شامل اجرای یک کد بررسی املا به نام aspell.exe است. متأسفانه، به دلیل استفاده از Tcl/Tk به عنوان فریم ورک رابط کاربری گرافیکی، مسیر جستجوی یک فایل اجرایی همیشه شامل دایرکتوری جاری است. بنابراین، ممکن است که این رابط کاربری، یک aspell.exe موجود در دایرکتوری سطح بالای مخزن کپی شده را اجرا کند بدون اینکه به کاربر امکان دهد که اول آن را بررسی کند در نتیجه کدهای بالقوه مخرب در سیستم محلی را اجرا میکند.
محصولات تحت تأثیر این آسیبپذیری
- گیت ویندوز
- نسخههای تحت تأثیر: <=2.39.0(2)
- نسخههایی که وصله امنیتی برای آنها منتشر شده: >=2.39.1
- گیت
- نسخههای تحت تأثیر: <= v2.30.6, v2.31.5, v2.32.4, v2.33.5, v2.34.5, v2.35.5, v2.36.3, v2.37.4, v2.38.2, v2.39.0
- نسخههایی که وصله امنیتی برای آنها منتشر شده: >= v2.30.7, v2.31.6, v2.32.5, v2.33.6, v2.34.6, v2.35.6, 36.4, v2.37.5, v2.38.3, v2.39.1
- گیتلب CE/EE
- نسخههای تحت تأثیر: < 15.7.4, 15.6.5, 15.5.8
- نسخههایی که وصله امنیتی برای آنها منتشر شده: >= 15.7.5, 15.6.6, 15.5.9
- سرور سازمانی گیتهاب
- نسخههای تحت تأثیر: < 3.3.19, 3.4.14, 3.5.11, 3.6.7, 3.7.4
- نسخههایی که وصله امنیتی برای آنها منتشر شده: >= 3.3.19, 3.4.14, 3.5.11, 3.6.7, 3.7.4
توصیهها
CERT-EU قویاً توصیه میکند که همه نسخههای تحت تأثیر این آسیبپذیری در اسرع وقت به جدیدترین نسخه بهروزرسانی شوند. اگر امکان ارتقاء را ندارید، میتوانید از راهکارهای زیر استفاده کنید:
- CVE-2022-23521
- غیر فعال کردن git archive در مخازن غیرقابل اعتماد.
- اگر git archive را از طریق git daemon افشا میکنید، آن را با اجرای git config -global daemon.uploadArch غیرفعال کنید.
- از اجرای مستقیم git archive روی مخازن غیرقابل اعتماد خودداری کنید.
- CVE-2022-41903
- از کپی کردن (کلون کردن) از منابع غیرقابل اعتماد خودداری کنید.
- CVE-2022-41953
از رابط کاربری گرافیکی گیت برای کپی کردن استفاده نکنید. اگر امکان این کار برای شما وجود ندارد، حداقل از کپی کردن از منابع غیرقابل اعتماد خودداری کنید.
منبع: فراست