خانه » CVE-2026-43284

CVE-2026-43284

Dirty Frag: Linux Kernel Local Privilege Escalation

توسط Vulnerbyte Alerts
217 بازدید

چکیده

آسیب‌پذیری Dirty Frag که با نام Copy Fail 2 نیز شناخته می‌شود، یک ضعف امنیتی جدی در کرنل لینوکس است. این ضعف به یک کاربر لوکال اجازه می‌دهد با سوءاستفاده از مدیریت حافظه کش سیستم، سطح دسترسی خود را به root افزایش دهد. در محیط‌های کانتینری مانند Kubernetes، این آسیب‌پذیری می‌تواند منجر به فرار از کانتینر (Container Escape) و نفوذ به میزبان اصلی شود.

توضیحات

آسیب‌پذیری CVE-2026-43284 که با نام Dirty Frag و Copy Fail 2 نیز شناخته می‌شود، یک ضعف جدی از نوع نوشتن مقدار دلخواه در مکان دلخواه (Write-what-where) مطابق با CWE-123 در کرنل لینوکس است که در مسیر پردازش بسته‌های ESP در زیرسیستم xfrm رخ می‌دهد. این ضعف به دلیل مدیریت نادرست فرگمنت‌های حافظه در ساختار بافر سوکت (Socket Buffer یا skb) ایجاد شده است. در این وضعیت، کرنل در شرایط خاص امکان نوشتن داده‌های کنترل‌شده مهاجم را در یک آدرس دلخواه فراهم می‌کند که می‌تواند منجر به تغییر محتوای حافظه مرتبط با فایل‌ها شود.

ریشه این آسیب‌پذیری به تعامل نادرست میان مکانیزم Zero-Copy I/O از طریق فراخوانی سیستمی splice و فرآیند رمزگشایی In-place  در پیاده‌سازی ESP بازمی‌گردد. در لینوکس، splice این امکان را فراهم می‌کند که داده‌ها بدون کپی در فضای کاربر و مستقیماً از صفحات کش فایل (Page Cache) به مقصد منتقل شوند. وقتی صفحات یک فایل با splice به یک skb متصل می‌شوند، این صفحات ممکن است در واقع صفحات کش مشترک باشند و نه یک بافر خصوصی قابل نوشتن. در حالت عادی، برای جلوگیری از تغییر ناخواسته این صفحات، کرنل باید فلگ SKBFL_SHARED_FRAG را روی skb تنظیم کند تا در صورت نیاز عملیات Copy-On-Write (COW) انجام شود. با این حال، در برخی مسیرهای ساخت بسته‌های IPv4 و IPv6 datagram این فلگ به درستی تنظیم نمی‌شود و در نتیجه کرنل به اشتباه فرض می‌کند که داده‌های موجود در skb به حافظه خصوصی تعلق دارند.

در ادامه، هنگامی که بسته ESP-in-UDP به سیستم دریافت‌کننده می‌رسد، تابع esp_input() در زیرسیستم xfrm برای بهبود کارایی تلاش می‌کند عملیات رمزگشایی را مستقیماً روی همان بافر انجام دهد. این مسیر یا به اصطلاح fast path زمانی فعال می‌شود که skb کلون نشده باشد و فرگمنت‌های آن به عنوان حافظه مشترک علامت‌گذاری نشده باشند. به دلیل خطای ذکرشده، کرنل تصور می‌کند که امکان نوشتن مستقیم در این بافر وجود دارد، در حالی که این بافر در واقع به صفحات کش فایل اشاره می‌کند. در نتیجه، تابع رمزنگاری مانند crypto_authenc_esn_decrypt() چند بایت داده کنترل‌شده را مستقیماً در همان صفحات می‌نویسد. اگر این صفحات متعلق به یک فایل اجرایی یا فایل سیستمی باشند، محتوای موجود در صفحات کش آن فایل تغییر می‌کند؛ هرچند نسخه واقعی فایل روی دیسک تغییر نخواهد کرد. با این حال، از آنجا که سیستم‌عامل در زمان اجرا ابتدا نسخه موجود در صفحات کش را استفاده می‌کند، برنامه‌هایی که بعداً اجرا شوند نسخه دستکاری‌شده را بارگذاری خواهند کرد.

این آسیب‌پذیری معمولا به صورت لوکال قابل بهره‌برداری بوده و به سادگی قابل خودکارسازی است. همچنین، این ضعف یک باگ منطقی (Logic Bug) قطعی است و بهره‌برداری از آن به هیچ‌گونه شرایط رقابتی (Race Condition) وابسته نیست، بنابراین نرخ موفقیت بالایی دارد و حتی در صورت ناموفق بودن، معمولاً کرنل دچار کرش نمی‌شود. مهاجم می‌تواند با ایجاد یک فضای نام کاربری (User Namespace) و یک فضای نام شبکه  (Network Namespace) از طریق فراخوانی unshare() به قابلیت CAP_NET_ADMIN در Namespace جدید دست پیدا کند. سپس با پیکربندی ساختارهای موردنیاز در زیرسیستم xfrm و استفاده از ترکیب splice()  برای اتصال صفحات فایل هدف به skb و sendmsg() برای ارسال بسته‌های ESP دستکاری‌شده، مسیر آسیب‌پذیر در esp_input را فعال کند. کد اثبات مفهومی (PoC) برای این آسیب‌پذیری منتشر شده است که نشان می‌دهد چگونه با ایجاد یک فضای نام کاربری و شبکه جدید و سپس اتصال صفحات یک فایل حساس به یک بافر سوکت از طریق splice(), می‌توان با ارسال بسته‌های دستکاری‌شده ESP، بخش‌هایی از صفحات کش فایل آن را بازنویسی کرد. این فرآیند امکان تزریق کد مخرب به باینری‌های سیستمی را فراهم می‌کند که در نهایت منجر به افزایش سطح دسترسی (Privilege Escalation) می‌شود.

در محیط‌های مدرن مبتنی بر کانتینر مانند Kubernetes، پیامدهای این آسیب‌پذیری می‌تواند شدیدتر باشد. بسیاری از کانتینرها از لایه‌های مشترک ایمیج استفاده می‌کنند و این لایه‌ها در حافظه به صورت صفحات کش مشترک مدیریت می‌شوند. در چنین شرایطی، یک کانتینر با دسترسی پایین می‌تواند محتوای صفحات کش مربوط به یک باینری مشترک را تغییر دهد و منتظر بماند تا یک سرویس یا کانتینر با دسترسی بالاتر همان فایل را اجرا کند. این موضوع می‌تواند منجر به فرار از کانتینر و در نهایت اجرای کد با سطح دسترسی بالا در میزبان شود.

از منظر اصول سه‌گانه امنیت سایبری، این آسیب‌پذیری تأثیر قابل توجهی دارد. از نظر محرمانگی (Confidentiality)، امکان اجرای کد با سطح دسترسی بالاتر می‌تواند منجر به افشای اطلاعات حساس شود. از نظر یکپارچگی (Integrity)، مهاجم قادر است محتوای فایل‌های سیستمی یا اجرایی را در حافظه دستکاری کند. همچنین از نظر دسترس‌پذیری (Availability)، تغییر عملکرد برنامه‌های حیاتی سیستم می‌تواند موجب اختلال در سرویس‌ها یا از کار افتادن سیستم شود. این ضعف در نسخه‌های جدیدتر کرنل لینوکس با اصلاح مدیریت فرگمنت‌های skb و اعمال بررسی‌های لازم برای جلوگیری از نوشتن مستقیم روی صفحات مشترک پچ شده است.

CVSS

Score Severity Version Vector String
8.8 HIGH 3.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

شکل 1: تفسیر جدول CVSS

لیست محصولات آسیب پذیر

Versions Product
affected at 4.11 Linux
affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before a6cb440f274a22456ef3e86b457344f1678f38f9

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before ab8b995323e5237041472d07e5055f5f7dcdf15b

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before fe785bb3a8096dffcc4048a85cd0c83337eeecad

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before 5d55c7336f8032d434adcc5fab987ccc93a44aec

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before 8253aab4659ca16116b522203c2a6b18dccacea7

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before 50ed1e7873100f77abad20fd31c51029bc49cd03

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before b54edf1e9a3fd3491bdcb82a21f8d21315271e0d

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before 71a1d9d985d26716f74d21f18ee8cac821b06e97

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before 52646cbd00e765a6db9c3afe9535f26218276034

affected from cac2661c53f35cbe651bef9b07026a5a05ab8ce0 before f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4

Linux

لیست محصولات بروز شده

Versions Product
unaffected from 0 before 4.11

unaffected from 5.10.255 through 5.10

unaffected from 5.15.205 through 5.15

unaffected from 5.15.206 through 5.15

unaffected from 6.1.171 through 6.1

unaffected from 6.1.172 through 6.1

unaffected from 6.6.138 through 6.6

unaffected from 6.12.87 through 6.12

unaffected from 6.18.28 through 6.18

unaffected from 7.0.5 through 7.0

unaffected from 7.1-rc3

Linux
a6cb440f274a22456ef3e86b457344f1678f38f9

ab8b995323e5237041472d07e5055f5f7dcdf15b

fe785bb3a8096dffcc4048a85cd0c83337eeecad

5d55c7336f8032d434adcc5fab987ccc93a44aec

8253aab4659ca16116b522203c2a6b18dccacea7

50ed1e7873100f77abad20fd31c51029bc49cd03

b54edf1e9a3fd3491bdcb82a21f8d21315271e0d

71a1d9d985d26716f74d21f18ee8cac821b06e97

52646cbd00e765a6db9c3afe9535f26218276034

f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4

Linux

 استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که  Linux kernel را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google (Total Pages) Search Query (Dork) Product
740,000 site:.ir “linux” Linux
24,700 site:.ir “Linux kernel” Linux kernel

نتیجه گیری

این آسیب‌پذیری با شدت بالا، به یک کاربر لوکال با دسترسی محدود اجازه می‌دهد تا با سوءاستفاده از مدیریت نادرست بافرها در پروتکل ESP، محتوای صفحات کش فایل را در حافظه دستکاری کرده و در نهایت به سطح دسترسی root دست یابد. وجود PoC عمومی و قابلیت اطمینان بالای این روش در محیط‌های کانتینری، ریسک عملیاتی این ضعف امنیتی را بسیار جدی می‌کند. برای کاهش ریسک و مقابله با بهره‌برداری‌های احتمالی، اجرای اقدامات زیر ضروری است:

  • به‌روزرسانی کرنل لینوکس: قطعی‌ترین راهکار برای رفع این آسیب‌پذیری، ارتقای سیستم‌عامل به نسخه‌های پچ‌شده کرنل است. سایر اقدامات نقش مکمل را داشته و برای کاهش ریسک در محیط‌های عملیاتی ضروری می‌باشند.
  • محدودسازی قابلیت فضاهای نام کاربری بدون دسترسی ویژه: از آنجا که بهره‌برداری از این حمله نیازمند ایجاد فضای نام کاربری برای کسب دسترسی CAP_NET_ADMIN است، محدود کردن ایجاد فضای نام‌های غیرمجاز (از طریق تنظیمات unprivileged_userns_clone=0) می‌تواند به طور مؤثری مسیر حمله را مسدود کند.
  • نظارت بر یکپارچگی فایل‌ها (FIM): استفاده از ابزارهای مانیتورینگ یکپارچگی فایل (مانند AIDE، Tripwire یا Samhain) برای شناسایی تغییرات غیرمنتظره در فایل‌های حساس سیستمی ضروری است. اگرچه این آسیب‌پذیری فایل روی دیسک را تغییر نمی‌دهد، اما ابزارهای پیشرفته می‌توانند تغییرات مشکوک ناشی از اجرای کدهای آلوده در حافظه را گزارش کنند.
  • کاهش سطح حمله در سیستم: غیرفعال کردن ماژول‌های غیرضروری کرنل (به‌ویژهesp4، esp6 و rxrpc) و اعمال سیاست‌های سخت‌گیرانه امنیتی در محیط‌های کانتینری (مانند جلوگیری از اجرای کانتینرها با سطح دسترسی بالا و محدود کردن مجوزهای با ریسک بالا)، سطح حمله را به شکل قابل توجهی کاهش می‌دهد.
  • مانیتورینگ و ثبت لاگ امنیتی: بررسی لاگ‌های سیستم و استفاده از سامانه‌های تشخیص نفوذ میزبان (HIDS) برای شناسایی فراخوانی‌های مشکوک، به‌ویژه در محیط‌های کانتینری مانند Docker و Kubernetes، می‌تواند حملات مرتبط با این آسیب‌پذیری را شناسایی کند.

اجرای این اقدامات، به‌ویژه به‌روزرسانی سریع کرنل لینوکس، ریسک سوءاستفاده از این آسیب‌پذیری را به شکل قابل توجهی کاهش داده و امنیت سیستم‌های مبتنی بر لینوکس را در برابر حملات افزایش سطح دسترسی و فرار از کانتینر تضمین می‌کند.

امکان استفاده در تاکتیک‌های Mitre Attack (در زمان اجرای حمله)

Initial Access (TA0001)

مهاجم نیاز به دسترسی اولیه به سیستم هدف دارد. این دسترسی می‌تواند از طریق یک اکانت محلی با هر سطح دسترسی، یک اکانت سرویس (مانند www-data)، یک پردازه مخرب ناشی از اجرای کد از راه دور (RCE) در یک برنامه کاربردی و یا از طریق دسترسی به یک کانتینر به دست آمده باشد.

Execution (TA0002)

پس از دسترسی، مهاجم اسکریپت بهره‌برداری (که اغلب با زبان C نوشته شده) را اجرا می‌کند. این اسکریپت با استفاده از فراخوان‌های سیستمی `unshare()`، `socket()` (Netlink)، `splice()` و `sendmsg()` عملیات آلوده سازی حافظه (page‑cache corruption) را انجام می‌دهد.

Privilege Escalation (TA0004)

هدف اصلی این آسیب‌پذیری است. مهاجم با استفاده از Dirty Frag از یک کاربر بدون امتیاز به سطح دسترسی کامل ریشه (Root) ارتقا می‌یابد. این افزایش دسترسی امکان انجام هر عملیاتی را روی سیستم فراهم می‌کند.

Defense Evasion (TA0005)

از آنجا که تمام تغییرات فقط در حافظه نهان (Page Cache) اعمال می‌شود و هیچ فایلی روی دیسک تغییر نمی‌کند، ابزارهای سنتی تشخیص نفوذ مبتنی بر بررسی یکپارچگی فایل‌ها (File Integrity Monitoring) و آنتی‌ویروس‌ها قادر به شناسایی حمله نخواهند بود. مهاجم همچنین می‌تواند اسکریپت خود را مبهم (Obfuscate) کند.

Credential Access (TA0006)

پس از دستیابی به دسترسی root، مهاجم می‌تواند به تمام فایل‌ها از جمله فایل‌های احراز هویت مانند /etc/ shadow دسترسی پیدا کرده و هش رمزهای عبور کاربران را استخراج کند. همچنین می‌تواند توکن‌های احراز هویت ذخیره شده در حافظه را هدف قرار دهد.

Impact (TA0040)

بهره‌برداری موفق از این آسیب‌پذیری یک نقض کامل امنیتی است. مهاجم با دسترسی کامل root، قادر به نابودی محرمانگی، یکپارچگی و در دسترس بودن داده‌ها است. این دسترسی می‌تواند منجر به سرقت اطلاعات حساس (نظیر اسرار تجاری و اطلاعات شخصی کاربران)، تخریب یا اخاذی داده‌ها (Ransomware)، تغییر در پیکربندی سیستم، ایجاد یک دسترسی دائمی برای حملات بعدی (Lateral Movement) و در نهایت از کار افتادن کامل سرویس‌های حیاتی شود. در چنین وضعیتی، اعتماد کاربران از بین رفته و سازمان با هزینه‌های سنگین ناشی از نقض داده‌ها، جریمه‌های قانونی و خسارت به اعتبار خود مواجه خواهد شد.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-43284
  2. https://www.cvedetails.com/cve/CVE-2026-43284/
  3. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-43284
  4. https://vuldb.com/vuln/362045
  5. https://github.com/0xBlackash/CVE-2026-43284
  6. https://github.com/Percivalll/Dirty-Frag-Kubernetes-PoC
  7. https://github.com/V4bel/dirtyfrag
  8. https://nvd.nist.gov/vuln/detail/CVE-2026-43284
  9. https://cwe.mitre.org/data/definitions/123.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید