در مدیر بسته Cargo که برای مدیریت بستهها و ساخت پروژهها به زبان Rust استفاده میشود، دو آسیبپذیری شناسایی شده است که هنگام دانلود بستههای طراحیشده خاص از مخازن شخص ثالث قابل سوء استفاده است (اظهار میشود که کاربران مخزن رسمی crates.io تحت تأثیر مشکل قرار نمی گیرند). اولین آسیب پذیری (CVE-2022-36113) اجازه می دهد تا زمانی که مجوزهای فعلی اجازه می دهد، دو بایت اول هر فایلی بازنویسی شوند. آسیب پذیری دوم (CVE-2022-36114) می تواند برای تخلیه فضای دیسک استفاده شود.
این آسیبپذیریها در انتشار Rust 1.64 که برای 22 سپتامبر برنامهریزی شده است، برطرف میشوند. آسیبپذیریها سطح پایینی از شدت دارند، زیرا هنگام استفاده از بستههای تأیید نشده از مخازن شخص ثالث با استفاده از توانایی استاندارد برای راهاندازی کنترلکنندههای سفارشی از اسکریپتهای اسمبلی یا ماکروهای رویهای عرضهشده در بسته، آسیبهای مشابهی ممکن است ایجاد شود. در عین حال، مشکلات ذکر شده در بالا از این جهت متفاوت است که در مرحله باز کردن بسته پس از دانلود (بدون مونتاژ) مورد سوء استفاده قرار می گیرند.
به ویژه، پس از دانلود یک بسته، محتویات محتویات آن را در فهرست ~/.cargo باز می کند و نشانه ای از باز کردن بسته بندی موفق را در فایل .cargo-ok ذخیره می کند. ماهیت آسیبپذیری اول این است که سازنده بسته میتواند یک پیوند نمادین را با نام .cargo-ok در داخل قرار دهد، که منجر به نوشتن متن «ok» در فایلی میشود که پیوند به آن اشاره میکند.
آسیب پذیری دوم ناشی از عدم وجود محدودیت در اندازه داده های استخراج شده از آرشیو است که می تواند برای ایجاد "بمب های فشرده" استفاده شود (بایگانی می تواند حاوی داده هایی باشد که امکان دستیابی به حداکثر نسبت فشرده سازی برای فرمت فشرده را فراهم می کند - حدود 28 میلیون بار، در این مورد، به عنوان مثال، یک فایل فشرده 10 مگابایتی که به طور خاص آماده شده است، منجر به کاهش فشرده سازی تقریباً 281 ترابایت داده می شود.
منبع: opennet.ru