در دنیای امنیت سایبری، هرچند لینوکس بهعنوان یکی از امنترین سیستمعاملها شناخته میشود، اما ظهور آسیبپذیریهای سطح کرنل میتواند این تصور را به چالش بکشد. در ماه مه ۲۰۲۶، یک آسیبپذیری جدید و بسیار خطرناک با نام Dirty Frag در هسته لینوکس افشا شد که تقریباً تمام توزیعهای اصلی لینوکس از سال ۲۰۱۷ تاکنون را تحت تأثیر قرار میدهد. این نقص امنیتی امکان ارتقای سطح دسترسی (Local Privilege Escalation) و دستیابی به سطح Root را برای کاربران عادی فراهم میکند.
Dirty Frag بهسرعت به یکی از جدیترین تهدیدهای امنیتی لینوکس تبدیل شد، زیرا برخلاف بسیاری از اکسپلویتهای مشابه، نیازی به race condition ندارد، نرخ موفقیت آن بسیار بالاست و حتی در صورت شکست نیز موجب کرش کرنل نمیشود.
دقیقاً چیست؟
Dirty Frag یک آسیبپذیری در هسته لینوکس است که در بخشهای مرتبط با پردازش بستههای شبکه و مدیریت Page Cache رخ میدهد. این آسیبپذیری در مسیرهای decrypt مربوط به ماژولهای esp4، esp6 و rxrpc قرار دارد. مهاجم میتواند با سوءاستفاده از این نقص، محتوای حافظه کش فایلها را تغییر داده و در نهایت کنترل کامل سیستم را در اختیار بگیرد. این باگ در حقیقت ادامهای بر خانواده آسیبپذیریهای مشهور Dirty Pipe و Copy Fail می باشد و از حملات مرتبط با PageCache استفاده میکند.
چرا Dirty Frag تا این حد خطرناک است؟
چند ویژگی باعث شدهاند Dirty Frag نسبت به بسیاری از CVEهای اخیر لینوکس خطرناکتر تلقی شود:
1. دسترسی Root فوری
هر کاربر عادی که دسترسی local یا SSH به سیستم داشته باشد، میتواند در عرض چند ثانیه به سطح Root برسد.
2. نرخ موفقیت بالا
طبق گزارش محقق امنیتی Hyunwoo Kim، اکسپلویت Dirty Frag تقریباً روی تمام توزیعهای اصلی لینوکس با موفقیت اجرا میشود.
نحوه عملکرد فنی Dirty Frag
برای درک بهتر این آسیبپذیری باید ابتدا مفهوم Page Cache در لینوکس را بشناسیم.
Page Cache چیست؟
Page Cache بخشی از حافظه کرنل است که برای افزایش سرعت خواندن فایلها استفاده میشود. وقتی لینوکس فایلی را میخواند، دادهها در Page Cache ذخیره میشوند تا دسترسیهای بعدی سریعتر انجام شود.
مشکل زمانی ایجاد میشود که مهاجم بتواند دادههای داخل Page Cache را بدون داشتن مجوز واقعی تغییر دهد.
زنجیره حمله Dirty Frag
Dirty Frag از ترکیب دو نقص امنیتی استفاده میکند:
xfrm-ESP Page-Cache Write
این بخش مربوط به پردازش IPsec ESP در کرنل است. نقص موجود اجازه میدهد دادههای decrypt شده مستقیماً وارد Page Cache شوند، بدون اینکه ownership حافظه بهدرستی بررسی شود.
RxRPC Page-Cache Write
در بخش RxRPC نیز امکان نوشتن غیرمجاز روی Page Cache وجود دارد. مهاجم با ترکیب این دو primitive میتواند فایلهای محافظتشده سیستم را دستکاری کند.
سناریوی واقعی حمله
فرض کنید مهاجم تنها یک shell معمولی روی سیستم دارد. او میتواند:
- فایل باینری حساس مانند
/etc/passwdیا یک SUID binary را target کند. - محتوای Page Cache آن را overwrite کند.
- یک payload مخرب inject نماید.
- سپس فایل تغییر یافته را اجرا کند.
- سیستم بلافاصله دسترسی Root را در اختیار مهاجم قرار دهد.
تفاوت Dirty Frag با Dirty Pipe
بسیاری از کارشناسان Dirty Frag را نسخه تکاملیافته Dirty Pipe میدانند.
| ویژگی | Dirty Pipe | Dirty Frag |
|---|---|---|
| نوع آسیبپذیری | Page Cache overwrite | Page Cache overwrite |
| نیاز به Race | خیر | خیر |
| پایداری exploit | بالا | بسیار بالا |
| محل نقص | Pipe subsystem | Networking/IPsec |
| سطح تهدید | شدید | بحرانیتر |
یکی از مهمترین تفاوتها این است که Dirty Frag از مسیرهای شبکه کرنل استفاده میکند و به همین دلیل در برخی سناریوها exploit آن سادهتر و پایدارتر است.
آیا Dirty Frag حمله Remote است؟
خیر! برای این حمله مهاجم ابتدا باید به طریقی به داخل سرور نفوذ کند حتی با حداقل دسترسی پس هر نوع web shell یا اتصال ssh میتواند نقطه ورود باشد. در واقع حمله DirtyFrag منجر به Privilege escalation میشود.
روشهای موقت مقابله با Dirty Frag
مهم ترین کار برای مقابله اطمینان از غیرفعال بودن esp4 و rxrpc در سرور است. اما نباید فراموش کرد که بهره مندی از راهکارهای محافظت از ssh و شل واجب است.
فعالسازی SELinux یا AppArmor هم برای سرورهای حساس گزینه ای کارامد میباشد. با توجه به اینکه این آسیب پذیری حتی اگر در اپلیکیشن های درون کانتینتر وجود داشته باشد، امکان ورود به سرور میزبان را برای مهاجم فراهم میکند باید احتیاط زیادی در دسترسی از راه دور به سرور ها بخرج داد.
جمعبندی
Dirty Frag یکی از مهمترین آسیبپذیریهای لینوکس در سال ۲۰۲۶ محسوب میشود. این نقص امنیتی با سوءاستفاده از مکانیزم Page Cache و زیرسیستمهای شبکه کرنل، امکان دستیابی به دسترسی Root را برای کاربران عادی فراهم میکند. خطر اصلی این آسیبپذیری در سه عامل نهفته است:
- exploit پایدار و deterministic
- نبود patch در زمان افشا
- گستردگی توزیعهای آسیبپذیر
اگرچه Dirty Frag یک حمله Remote محسوب نمیشود، اما در سناریوهای post-exploitation میتواند کاملاً فاجعهبار باشد.
نظر شما در مورد این مطلب چیه؟