دو آسیب‌پذیری گیت که می‌تواند منجر به اجرای کد از راه دور شود

وصله‌های Git نسخه‌های ۲.۳۹.۱، ۲.۳۸.۳، ۲.۳۷.۵، ۲.۳۶.۴، ۲.۳۵.۶، ۲.۳۴.۶، ۲.۳۳.۶، ۲.۳۲.۵، ۲.۳۱.۶ و ۲.۳۰.۷ برای سیستم مدیریت کد منبع توزیع‌شده Git منتشر شده‌اند. این وصله‌ها دو آسیب‌پذیری را برطرف می‌کنند که می‌توانند هنگام استفاده از دستور "git archive" و کار با مخازن خارجی غیرقابل اعتماد، امکان اجرای کد سفارشی را روی سیستم کاربر فراهم کنند. این آسیب‌پذیری‌ها ناشی از خطاهایی در کد قالب‌بندی commit و تجزیه فایل ".gitattributes" هستند. هنگام پردازش مخازن خارجی، این خطاها می‌توانند منجر به نوشتن‌های خارج از محدوده در حافظه heap و خواندن‌های دلخواه از حافظه شوند.

هر دو آسیب‌پذیری در طول یک ممیزی امنیتی از پایگاه کد Git که توسط X41 به درخواست صندوق بهبود فناوری متن‌باز (OSTIF)، بنیادی که برای تقویت امنیت پروژه‌های متن‌باز تأسیس شده است، انجام شد، شناسایی شدند. علاوه بر دو مورد بحرانی که در زیر مورد بحث قرار می‌گیرند، ممیزی همچنین یک آسیب‌پذیری شدید، یک آسیب‌پذیری متوسط ​​و چهار مشکل خوش‌خیم را نیز یافت. بیست و هفت توصیه برای بهبود امنیت پایگاه کد نیز ارائه شد.

  • CVE-2022-41903: یک سرریز عدد صحیح در کد قالب‌بندی اطلاعات کامیت هنگام مدیریت مقادیر آفست بزرگ در عملگرهای padding مانند "%<(", "%<|(", "%>(", "%>>(", و "%><( )" وجود دارد. سرریز عدد صحیح در تابع format_and_pad_commit() به دلیل استفاده از نوع int برای متغیر size_t رخ می‌دهد که برای تعیین اندازه آفست بلوک کپی شده هنگام فراخوانی memcpy() استفاده می‌شود.

    این آسیب‌پذیری هم از طریق فراخوانی مستقیم با پارامترهای قالب‌بندی دستکاری‌شده‌ی خاص (برای مثال، هنگام اجرای "git log --format=...") و هم از طریق اعمال غیرمستقیم قالب‌بندی در طول اجرای دستور "git archive" در یک مخزن تحت کنترل مهاجم، خود را نشان می‌دهد. در حالت دوم، اصلاح‌کننده‌های قالب‌بندی از طریق پارامتر export-subst در فایل ".gitattributes" مشخص می‌شوند که می‌تواند توسط مهاجم در مخزن خود قرار گیرد. این آسیب‌پذیری می‌تواند برای خواندن و نوشتن دلخواه حافظه‌ی هیپ مورد سوءاستفاده قرار گیرد و منجر به اجرای کد مخرب هنگام کار با مخازن غیرقابل اعتماد شود.

  • CVE-2022-23521: سرریز عدد صحیح هنگام تجزیه محتویات فایل‌های ".gitattributes" در یک مخزن. این موارد هنگام پردازش تعداد بسیار زیادی از الگوهای مسیر فایل یا تعداد زیادی از ویژگی‌ها با یک الگوی واحد و همچنین هنگام تجزیه نام‌های ویژگی بسیار بزرگ رخ می‌دهد. این مشکل می‌تواند برای خواندن و نوشتن مکان‌های دلخواه هیپ مورد سوءاستفاده قرار گیرد و منجر به اجرای کد مخرب هنگام کار با یک مخزن غیرقابل اعتماد شود، جایی که یک مهاجم می‌تواند یک فایل .gitattributes دستکاری‌شده خاص را قرار دهد و از فهرست‌بندی آن اطمینان حاصل کند.

انتشار به‌روزرسانی‌های بسته‌ها در توزیع‌ها را می‌توان در صفحات زیر پیگیری کرد: Debian, Ubuntu، جنتو، RHEL، SUSE، Arch، FreeBSD، NetBSD. برای کاهش خطر حمله به دلیل عدم نصب به موقع به‌روزرسانی‌ها، توصیه می‌کنیم از کار با مخازن نامعتبر خودداری کنید و از دستور "git archive" استفاده کنید. مهم است به یاد داشته باشید که دستور "git archive" می‌تواند به طور ضمنی، به عنوان مثال، از git daemon اجرا شود. برای غیرفعال کردن "git archive" در git daemon، پارامتر daemon.uploadArch را با استفاده از دستور "git config --global daemon.uploadArch false" تغییر دهید.

علاوه بر این، یک آسیب‌پذیری دیگر (CVE-2022-41953) را می‌توان در گیت محصول مشاهده کرد. Windowsکه امکان اجرای کد را هنگام شبیه‌سازی مخازن خارجی غیرقابل اعتماد از طریق رابط کاربری گرافیکی فراهم می‌کند. این مشکل به این دلیل ایجاد می‌شود که رابط کاربری گرافیکی گیت برای Windows پس از عملیات «بررسی»، به طور خودکار برخی از دستورات پس‌پردازش، مانند اجرای برنامه‌ی بررسی املا برای بررسی املا، را اجرا می‌کند، در حالی که مسیرهای جستجو برای بررسی املای فایل، شامل درخت کاری شبیه‌سازی شده نیز می‌شود (این حمله به افزودن بررسی املا به درخت کاری مخزن خلاصه می‌شود).

منبع: opennet.ru

خرید هاست قابل اعتماد برای سایت های دارای حفاظت DDoS، سرورهای VPS VDS 🔥 خرید هاستینگ معتبر با محافظت در برابر حملات DDoS، سرورهای VPS و VDS | ProHoster