
تاریخ
19.01.2023– نسخه 1.0 – انتشار اولیه
خلاصه
در حین انجام بازبینی کد، X41 چندین آسیب پذیری را در سیستم کنترل نسخه Git شناسایی کرد. در 17 ژانویه، پروژه GATE دو مورد از مهم ترین آسیب پذیری های امنیتی CVE-2022-23521 و CVE-2022-41903 را برطرف کرد. این دو آسیب پذیری اجازه اجرای کد از راه دور را می دهند. GitHub و GitLab به روز رسانی هایی را برای محصولات خود منتشر کرده اند، از جمله آخرین نسخه Git. آسیبپذیری سوم (CVE-2022-41953) همچنین بر نسخه ویندوز نرمافزار Git GUI تأثیر گذاشته و میتواند منجر به اجرای کد دلخواه شود.
CERT-EU قویاً ارتقاء به آخرین نسخه Git را توصیه می کند. همچنین، اگر از سرورهای GitHub یا GitLab داخلی استفاده می کنید، توصیه می شود آن ها را نیز به روز کنید.
جزییات فنی
- CVE-2022-23521
Git میتواند commitها را در هر قالبی با استفاده از فرمان فرعی log (با استفاده از کاراکتر — به دنبال تعیینکننده فرمت) نمایش دهد. علاوه بر این، Git این قابلیت را از طریق git فراهم می کند بایگانی و آن را با استفاده از ویژگی export-subst نمایش می دهد.
هنگام پردازش عملیات padding، یعنی %<( ، %، %>(، %>>( یا %><( ممکن است یک خطای سرریز عدد صحیح رخ دهد. این سرریز می تواند باعث نوشتن کد دلخواه در پشته شود که می تواند اجرای کد از راه دور را امکان پذیر کند. کاربران می توانند با اجرای دستوری که از فرمت commit استفاده می کند، مانند git log –format=…، این رفتار را فعال کنند. یک مهاجم همچنین می تواند به طور غیر مستقیم از طریق git بایگانی و مکانیسم صادرات-زیر باعث سرریز شد این دستور مشخص کننده های قالب را در فایل های مخزن در حالی که ArchiveGate در حال اجرا است گسترش می دهد.
- CVE-2022-41903
Git از ویژگی های gitat برای تعیین ویژگی های مسیر استفاده می کند. کاربران می توانند یک فایل اضافه کنند .gitattributes این خصوصیات را در مخزن تعریف کنید. این فایل شامل مجموعهای از قالبها و ویژگیهای فایل است که Git باید برای مطابقت با مسیرها تنظیم کند.
سرریز اعداد صحیح ممکن است زمانی اتفاق بیفتد که Gate الگوهای بیش از حد یا بسیاری از ویژگیها را برای یک الگوی خاص تجزیه میکند، یا زمانی که نامهای تعیینشده برای ویژگیها خیلی بزرگ هستند. مهاجم می تواند از طریق فایل .gitattributes ساختنی که ممکن است بخشی از تاریخچه commit باشد باعث این سرریزها می شود. عدم موفقیت بستگی به این دارد که آیا فایل ها در درخت کار یا فهرست یا هر دو وجود دارند. Git خطوط بیش از 2 کیلوبایت را هنگام تجزیه ویژگیها از فایلها تقسیم میکند، اما در هنگام تجزیه آنها از یک فهرست نه.
در حالت دوم، سرریز می تواند منجر به خواندن و نوشتن تصادفی از پشته شود که می تواند به اجرای کد از راه دور کمک کند.
- CVE-2022-41953
Git GUI ابزاری است که با Windows Git ارائه می شود. پس از تکثیر یک مخزن، این UI به طور خودکار آن را بیشتر پردازش می کند. پس پردازش، در صورت امکان، شامل اجرای یک کد غلط گیر املا به نام است aspell.exe F. متأسفانه، به دلیل استفاده از 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
- GitLab CE/EE
- نسخه های تحت تأثیر: < 15.7.4، 15.6.5، 15.5.8
- نسخه هایی که وصله امنیتی برای آنها منتشر شده است: >= 15.7.5، 15.6.6، 15.5.9
- سرور GitHub Enterprise
- نسخه های تحت تأثیر: < 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 را غیرفعال کنید بایگانی در مخازن نامعتبر
- اگر git بایگانی از طریق git daemon در معرض نمایش قرار می گیرد، با اجرای git config -global daemon.uploadArch آن را غیرفعال کنید.
- از راه اندازی مستقیم git بایگانی از مخازن نامعتبر خودداری کنید.
- CVE-2022-41903
- از کپی (کلونینگ) از منابع نامعتبر خودداری کنید.
- CVE-2022-41953
از Git GUI برای کپی استفاده نکنید. اگر این امکان برای شما وجود ندارد، حداقل از کپی برداری از منابع نامعتبر خودداری کنید.