یک آسیبپذیری (CVE-2022-4415) در مؤلفه systemd-coredump شناسایی شده است، که فایلهای هستهای تولید شده پس از خرابی فرآیندها را پردازش میکند و به کاربر محلی غیرمجاز اجازه میدهد تا محتوای حافظه پردازشهای ممتاز را که با پرچم suid root اجرا میشوند، تعیین کند. مشکل پیکربندی پیشفرض در توزیعهای openSUSE، Arch، Debian، Fedora و SLES تأیید شده است.
این آسیبپذیری به دلیل عدم پردازش صحیح پارامتر fs.suid_dumpable sysctl در systemd-coredump ایجاد میشود، که وقتی روی مقدار پیشفرض 2 تنظیم میشود، امکان تولید هستههای خالی برای فرآیندهای دارای پرچم suid را فراهم میکند. قابل درک است که فایل های اصلی فرآیندهای suid نوشته شده توسط هسته باید دارای حقوق دسترسی تنظیم شده باشند تا فقط توسط کاربر اصلی امکان خواندن را فراهم کنند. ابزار systemd-coredump، که توسط کرنل برای ذخیره فایلهای اصلی فراخوانی میشود، فایل اصلی را در زیر شناسه ریشه ذخیره میکند، اما علاوه بر این، دسترسی خواندن مبتنی بر ACL را به فایلهای هسته بر اساس شناسه مالکی که در ابتدا فرآیند را راهاندازی کرده است، فراهم میکند. .
این ویژگی به شما امکان می دهد فایل های اصلی را بدون توجه به اینکه برنامه می تواند شناسه کاربری را تغییر داده و با امتیازات بالا اجرا کند، دانلود کنید. حمله به این واقعیت خلاصه می شود که کاربر می تواند یک برنامه suid را راه اندازی کند و یک سیگنال SIGSEGV برای آن ارسال کند، و سپس محتویات یک فایل اصلی را بارگیری کند، که شامل یک بخش حافظه از فرآیند در طول پایان غیرعادی است.
به عنوان مثال، یک کاربر می تواند "/usr/bin/su" را اجرا کند و در ترمینال دیگری اجرای آن را با دستور "kill -s SIGSEGV `pidof su`" خاتمه دهد، پس از آن systemd-coredump فایل اصلی را در /var ذخیره می کند. /lib/systemd/ دایرکتوری coredump، یک ACL برای آن تنظیم می کند که امکان خواندن توسط کاربر فعلی را فراهم می کند. از آنجایی که ابزار suid 'su' محتویات /etc/shadow را در حافظه می خواند، مهاجم می تواند به اطلاعات مربوط به هش رمز عبور همه کاربران در سیستم دسترسی پیدا کند. ابزار sudo مستعد حمله نیست، زیرا تولید فایل های اصلی از طریق ulimit را ممنوع می کند.
طبق گفته توسعه دهندگان systemd، این آسیب پذیری با انتشار systemd 247 (نوامبر 2020) ظاهر می شود، اما طبق گفته محققی که مشکل را شناسایی کرده است، نسخه 246 نیز تحت تأثیر قرار می گیرد. این آسیب پذیری در صورتی ظاهر می شود که systemd با کتابخانه libacl کامپایل شده باشد (به طور پیش فرض در همه توزیع های محبوب). این اصلاح در حال حاضر به صورت پچ در دسترس است. میتوانید اصلاحات موجود در توزیعها را در صفحات زیر دنبال کنید: Debian، Ubuntu، Gentoo، RHEL، SUSE، Fedora، Gentoo، Arch. به عنوان یک راهحل امنیتی، میتوانید sysctl fs.suid_dumpable را روی 0 تنظیم کنید، که ارسال dumpها به handler systemd-coredump را غیرفعال میکند.
منبع: opennet.ru