Fragnesia: آسیبپذیری جدید ارتقاء سطح دسترسی در هسته لینوکس
خلاصهٔ کاملتر
محققان امنیتی یه آسیبپذیری جدید به اسم Fragnesia کشف کردن که عضوی از خانواده DirtyFrag محسوب میشه. این باگ روی زیرسیستم XFRM ESP-in-TCP هسته لینوکس تأثیر میذاره و به مهاجم محلی بدون هیچ امتیاز ویژهای اجازه میده به دسترسی root برسه. نکته جالب اینه که Fragnesia خودش اثر جانبی ناخواسته یکی از پچهایی بوده که برای رفع آسیبپذیریهای اصلی DirtyFrag منتشر شده.
از نظر فنی، مشکل از نحوه مدیریت نادرست page fragmentهای مشترک در هنگام عملیات skb coalescing (ادغام بستههای شبکه در بافر کرنل) ناشی میشه. اکسپلویت اینطور کار میکنه: صفحات فایلی پیش از اینکه سوکت وارد حالت espintcp بشه به صف دریافت TCP وارد میشن؛ بعد از فعالشدن پردازش ESP، کرنل دادههای صفشده رو in-place رمزگشایی میکنه و این باعث میشه از طریق دستکاری keystream رمزنگاری AES-GCM، حافظه page cache بهشکل کنترلشده خراب بشه.
مهاجم با استفاده از user namespace و network namespace امتیاز CAP_NET_ADMIN رو در یه فضای ایزوله به دست میاره، یه ESP Security Association دستکاریشده از طریق NETLINK_XFRM نصب میکنه، و بهشکل تکراری بایتهای کنترلشدهای رو داخل صفحات کش فایل مینویسه. محققان نشون دادن که میشه اولین بایتهای /usr/bin/su رو با یه payload کوچک ELF که setresuid(0,0,0) رو صدا میزنه و /bin/sh رو اجرا میکنه جایگزین کرد و به shell روت رسید. مهم اینه که این تغییر فقط در حافظه RAM اتفاق میافته و فایل روی دیسک دست نمیخوره.
برخلاف DirtyFrag، این آسیبپذیری نیازی به هیچ امتیاز سطح هاست نداره. البته AppArmor (که مثلاً در Ubuntu بهصورت پیشفرض فعاله) میتونه تا حدی جلوی سوءاستفاده رو بگیره، ولی bypass کردنش هم ممکنه.
برای کاهش خطر، توصیه میشه ماژولهای آسیبپذیر غیرفعال بشن:
rmmod esp4 esp6 rxrpc
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/fragnesia.confاگه سیستم در معرض اکسپلویت قرار گرفته، میشه با ریبوت یا پاککردن page cache باینریهای تغییرشده رو از حافظه پاک کرد:
echo 1 | tee /proc/sys/vm/drop_cachesنکات کلیدی:
- Fragnesia یه LPE جدید در هسته لینوکسه که از زیرسیستم XFRM ESP-in-TCP سوءاستفاده میکنه
- مهاجم بدون امتیاز سطح هاست میتونه محتوای فایلها رو در حافظه تغییر بده و root بشه
- این آسیبپذیری خودش ناخواسته از یه پچ DirtyFrag به وجود اومده
- غیرفعالکردن ماژولهای esp4، esp6 و rxrpc تا زمان انتشار پچ رسمی توصیه میشه
- تغییرات فقط در RAM اعمال میشن و با ریبوت یا drop_caches از بین میرن




