Bad Epoll: یه باگ کرنل لینوکس که دسترسی root میده
خلاصهٔ کاملتر
طبق این مقاله، جزئیات فنی و کد اثبات مفهوم (PoC) یه آسیبپذیری تازهٔ کرنل لینوکس عمومی شده؛ آسیبپذیریای که میتونه به پروسههای بدون امتیاز اجازه بده روی دسکتاپ، سرور و گوشیهای اندرویدی به دسترسی root برسن. این نقص با شناسهٔ CVE-2026-46242 و امتیاز CVSS برابر ۷.۸ دنبال میشه و به اسم Bad Epoll شناخته میشه.
برای اینکه بفهمیم مشکل کجاست، اول باید بدونیم epoll چیه. epoll امکانات اطلاعرسانی رویداد ورودی/خروجی کرنل لینوکسه. به جای اینکه برنامهها مجبور بشن file descriptorها رو یکییکی نظرسنجی (poll) کنن، کرنل یه نمونهٔ epoll نگه میداره که شامل یه فهرست علاقه (interest list) و یه فهرست آماده (ready list) از file descriptorهاست. این کار کارایی رو موقع مدیریت تعداد زیادی اتصال بالا میبره.
خود باگ یه شرط رقابتی (race condition) از نوع use-after-free تو مسیر آزادسازی فایل در epoll هست. به گفتهٔ مقاله، وقتی یه فهرست eventpoll از file descriptorها یه فهرست دیگه رو مانیتور میکنه و این دو تا همزمان بسته میشن، یکی از اونا شیء رو آزاد (free) میکنه در حالی که اون یکی هنوز داره روش مینویسه. همین دسترسی به حافظهای که آزاد شده، در نهایت به مهاجم اجازه میده کنترل جریان اجرا رو به دست بگیره و امتیازشو بالا ببره.
این نقص رو Jaeyoung Chung از آزمایشگاه امنیت کامپیوتر دانشگاه ملی سئول کشف کرده و بهعنوان یه zero-day به برنامهٔ Google kernelCTF گزارش داده. نکتهٔ جالب اینه که Bad Epoll تو سال ۲۰۲۳ توی همون کامیتی وارد کد شد که یه آسیبپذیری دیگه به اسم CVE-2026-43074 رو هم ایجاد کرده بود. به گفتهٔ محقق، ابزار Mythos شرکت Anthropic که اون باگ قبلی رو پیدا کرده بود، احتمالاً این یکی رو از دست داد چون بعد از رفع CVE-2026-43074، دیگه Bad Epoll باعث فعالشدن KASAN (سنسور خطای حافظهٔ پویا کرنل لینوکس) نمیشد.
محقق میگه رفع این باگ هم سخت بوده: اولین وصلهٔ نگهدارندهها مشکل رو کامل حل نکرد و وصلهٔ درست دو ماه بعد از گزارش اولیه اومد، که برای کرنلی که معمولاً مسائل امنیتی رو فوری هندل میکنه زمان زیادیه. Chung یه PoC منتشر کرده که با نشت حافظهٔ کرنل و ربودن یه فراخوانی غیرمستقیم، کنترل رجیستر اشارهگر دستور CPU رو میگیره و از طریق یه زنجیرهٔ Return-Oriented Programming به دسترسی root میرسه.
از نظر دامنهٔ تأثیر، توزیعهای لینوکسی که بر پایهٔ کرنل نسخهٔ ۶.۴ یا جدیدترن آسیبپذیرن. Bad Epoll روی دستگاههای Pixel 10 که کرنل نسخهٔ ۶.۶ رو اجرا میکنن هم تأیید شده. با عمومیشدن PoC، بهترین کار برای مدیرها اینه که هرچه زودتر کرنل سیستمهاشونو به نسخهٔ وصلهشده بهروز کنن.
نکات کلیدی:
- CVE-2026-46242 با اسم Bad Epoll، یه use-after-free تو زیرسیستم epoll کرنل لینوکس
- به پروسهٔ بدون امتیاز اجازهٔ رسیدن به دسترسی root رو میده
- ریشه یه شرط رقابتی بستهشدن همزمان دو فهرست مرتبط file descriptorهاست
- کرنل نسخهٔ ۶.۴ به بعد آسیبپذیره؛ روی Pixel 10 با کرنل ۶.۶ هم تأیید شده
- کد اثبات مفهوم عمومی شده، پس بهروزرسانی فوری کرنل توصیه میشه




