یک آسیب پذیری (CVE-2022-0435) در ماژول هسته لینوکس شناسایی شده است که عملکرد پروتکل شبکه TIPC (Transparent Inter-Process Communication) را تضمین می کند و به طور بالقوه اجازه می دهد تا کد در سطح هسته با ارسال یک شبکه طراحی شده خاص اجرا شود. بسته این مشکل فقط سیستمهایی را تحت تأثیر قرار میدهد که ماژول هسته tipc.ko بارگذاری شده و پشته TIPC پیکربندی شده است، که معمولاً در خوشهها استفاده میشود و به طور پیشفرض در توزیعهای غیر تخصصی لینوکس فعال نیست.
توجه داشته باشید که هنگام ساختن هسته در حالت "CONFIG_FORTIFY_SRC=y" (مورد استفاده در RHEL)، که بررسی کرانه های اضافی را به تابع memcpy() اضافه می کند، عملیات به توقف اضطراری محدود می شود (هسته وحشت می کند). اگر بدون بررسیهای اضافی اجرا شود و اطلاعات مربوط به تگهای قناری که برای محافظت از پشته استفاده میشوند به بیرون درز کند، مشکل میتواند برای اجرای کد از راه دور با حقوق هسته مورد سوء استفاده قرار گیرد. محققانی که مشکل را شناسایی کردند ادعا می کنند که تکنیک بهره برداری بی اهمیت است و پس از حذف گسترده آسیب پذیری در توزیع ها فاش خواهد شد.
این آسیبپذیری ناشی از سرریز پشتهای است که هنگام پردازش بستهها رخ میدهد، مقدار فیلد با تعداد گرههای عضو دامنه که در آن از 64 بیشتر میشود. برای ذخیره پارامترهای گره در ماژول tipc.ko، یک آرایه ثابت “u32 Member[64] ]” استفاده می شود، اما در فرآیند پردازش مشخص شده در بسته، شماره گره مقدار "member_cnt" را بررسی نمی کند، که اجازه می دهد از مقادیر بیشتر از 64 برای بازنویسی کنترل شده داده ها در ناحیه حافظه بعدی استفاده شود. به ساختار "dom_bef" در پشته.
باگ منتهی به این آسیب پذیری در 15 ژوئن 2016 معرفی شد و در هسته لینوکس 4.8 گنجانده شد. این آسیبپذیری در نسخههای 5.16.9، 5.15.23، 5.10.100، 5.4.179، 4.19.229، 4.14.266، و 4.9.301 و XNUMX رفع شد. در هسته های اکثر توزیع ها مشکل حل نشده باقی می ماند: RHEL، Debian، Ubuntu، SUSE، Fedora، Gentoo، Arch Linux.
پروتکل TIPC در ابتدا توسط اریکسون توسعه داده شد و برای سازماندهی ارتباطات بین فرآیندی در یک خوشه طراحی شد و عمدتاً در گره های خوشه ای فعال می شود. TIPC می تواند از طریق اترنت یا UDP (درگاه شبکه 6118) کار کند. هنگام کار از طریق اترنت، حمله را می توان از شبکه محلی، و در هنگام استفاده از UDP، از شبکه جهانی اگر پورت توسط فایروال پوشانده نشده باشد، انجام داد. این حمله همچنین می تواند توسط یک کاربر محلی غیرمجاز میزبان انجام شود. برای فعال کردن TIPC، باید ماژول هسته tipc.ko را دانلود کنید و اتصال به رابط شبکه را با استفاده از netlink یا ابزار tipc پیکربندی کنید.
منبع: opennet.ru