توضیحات

آسیب ‌پذیری DirtyClone با شناسه CVE-2026-43503 ناشی از ضعف در نحوه مدیریت بافرهای sk_buff و فرگمنت‌ های اشتراکی (Shared Fragments) در کرنل لینوکس است. این ضعف امنیتی زمانی رخ می‌دهد که کرنل در برخی مسیرهای جا به‌ جایی فرگمنت از جمله __pskb_copy_fclone() و skb_shift()، فلگ SKBFL_SHARED_FRAG را به ‌درستی از بافر مبدأ به مقصد منتقل نمی‌کند. این فلگ وضعیت اشتراکی بودن فرگمنت ‌ها را مشخص می‌کند و نشان می‌دهد که فرگمنت‌ های بسته شبکه همچنان از صفحات حافظه مشترک استفاده می‌کنند.

از آنجا که بافر مقصد ممکن است همچنان از همان صفحات حافظه خارجی یا صفحات مورد استفاده توسط کش صفحات (Page Cache) استفاده کند، حفظ نشدن این فلگ باعث می‌شود وضعیت واقعی حافظه با اطلاعات ثبت ‌شده در ساختار sk_buff مطابقت نداشته باشد. در چنین شرایطی، تابع skb_has_shared_frag() وجود فرگمنت اشتراکی را نادرست گزارش می‌کند، در حالی که داده ‌های آن همچنان روی صفحاتی قرار دارند که نباید مستقیماً در آن ‌ها نوشته شود.

اهمیت این ضعف زمانی روشن می‌شود که کرنل بر اساس وضعیت این فلگ تعیین کند آیا داده ‌ها پیش از انجام عملیات نوشتن باید در یک بخش حافظه خصوصی و قابل ‌نوشتن قرار گیرند یا خیر. در حالت عادی، وجود فلگ SKBFL_SHARED_FRAG به کرنل نشان می‌دهد که فرگمنت ‌های مورد استفاده همچنان با صفحات حافظه مشترک هستند. در نتیجه، مسیرهایی که داده‌ ها را مستقیماً روی همان صفحات حافظه تغییر می‌دهند، می‌توانند با استفاده از مکانیزم‌ هایی مانند skb_cow_data() ابتدا داده‌ ها را در یک بخش حافظه قابل‌ نوشتن کپی کنند تا از تغییر مستقیم صفحات اشتراکی جلوگیری شود.

در آسیب ‌پذیری DirtyClone، حفظ نشدن این فلگ هنگام جابه‌جایی فرگمنت‌ها باعث می‌شود وضعیت اشتراکی بودن صفحات حافظه از دید کرنل پنهان بماند و کنترل‌های لازم برای جلوگیری از نوشتن روی صفحات اشتراکی انجام نشود. یکی از مسیرهای مهم تحت تأثیر این ضعف، مسیر پردازش XFRM/ESP در کرنل لینوکس است که در فایل ‌های esp4.c و esp6.c پیاده‌سازی شده است. در این مسیر، داده‌ های رمزگشایی ‌شده ممکن است در شرایط خاص مستقیماً روی صفحات مورد استفاده توسط کش صفحات (Page Cache) نوشته شوند و در نتیجه، محتوای فایل ‌های موجود در این صفحات تغییر کند.

این ضعف فقط به مسیر XFRM/ESP محدود نمی‌شود و در چند مسیر دیگر مربوط به جابه‌جایی و پردازش فرگمنت‌ ها نیز مشاهده شده است. برای مثال، توابع skb_gro_receive() و skb_gro_receive_list() هنگام دریافت و ترکیب فرگمنت ‌ها می‌توانند بدون حفظ صحیح فلگ SKBFL_SHARED_FRAG وضعیت اشتراکی بودن صفحات را در بافر مقصد ثبت نکنند. این موضوع در ادامه پردازش، از جمله در مسیرهای skb_segment() و skb_segment_list() اهمیت پیدا می‌کند؛ زیرا این توابع برای پردازش فرگمنت ‌ها به اطلاعات ثبت ‌شده در skb_shinfo()->flags متکی هستند.

همین الگو در تابع tcp_clone_payload() نیز وجود دارد؛ این تابع هنگام ساخت یک skb جدید، فرگمنت ‌ها را از بافرهای موجود در مسیر ارسال TCP به بافر جدید منتقل می‌کند و در صورت حفظ نشدن فلگ، همان ناهماهنگی میان وضعیت واقعی صفحات حافظه و اطلاعات ثبت ‌شده در sk_buff ایجاد می‌شود. همچنین در skb_segment()، هنگام پردازش head_skb و بافرهای موجود در frag_list، باید فلگ مربوط به فرگمنت اشتراکی در بافر جدید نیز ثبت شود تا بخش ‌های ایجاد شده، وضعیت صحیح فرگمنت‌ ها را حفظ کنند.

پیامد مهم این آسیب ‌پذیری، امکان تغییر داده‌ هایی است که نباید از طریق یک بافر شبکه قابل ‌نوشتن باشند. در سناریوی توصیف‌ شده، یک کاربر لوکال با سطح دسترسی محدود می‌تواند از مسیر پردازشی آسیب ‌پذیر سوء استفاده کند و باعث شود داده ‌های موجود در کش صفحات یک فایل فقط ‌خواندنی متعلق به کاربر root تغییر کنند. چنین وضعیتی می‌تواند یکپارچگی فایل‌ های حساس را تهدید کند و در صورتی که فایل موردنظر دارای سطح دسترسی ویژه باشد، زمینه را برای افزایش سطح دسترسی (Privilege Escalation) فراهم سازد.   Jfrog نیز DirtyClone را یک آسیب‌ پذیری افزایش سطح دسترسی لوکال با شدت بالا توصیف کرده است.

Red Hat این آسیب ‌پذیری را در محصولات مبتنی بر کرنل خود بررسی کرده است. در Bugzilla این شرکت، این ضعف در کامپوننت net: skbuff ثبت شده است. بر اساس این گزارش، حفظ نشدن فلگ SKBFL_SHARED_FRAG هنگام انتقال فرگمنت ‌های صفحه ‌ای می‌تواند باعث شود skb مقصد همچنان از همان صفحات حافظه اشتراکی یا صفحات کش فایل استفاده کند، اما وضعیت اشتراکی بودن آن ‌ها دیگر برای کرنل مشخص نباشد.

همچنین Red Hat مسیر skb_try_coalesce() را بررسی کرده است؛ مسیری که در آن فرگمنت ‌های صفحه ‌ای می‌توانند از یک skb به skb دیگر منتقل شوند. در چنین حالتی، اگر skb مبدأ دارای فلگ اشتراکی باشد، این فلگ باید در skb مقصد نیز حفظ شود تا وضعیت واقعی حافظه به ‌درستی ثبت و پردازش گردد.

Red Hat این آسیب ‌پذیری را در دسته CWE-664 با عنوان «کنترل نادرست یک منبع در طول چرخه عمر» (Improper Control of a Resource Through its Lifetime) قرار داده است. این طبقه ‌بندی با ماهیت فنی آسیب ‌پذیری همخوانی دارد؛ زیرا فلگ مربوط به اشتراکی بودن صفحات حافظه هنگام انتقال فرگمنت ‌ها به ‌درستی حفظ نمی‌شود و در نتیجه، اطلاعات ثبت ‌شده درباره وضعیت منبع با وضعیت واقعی آن مطابقت ندارد. این ناهماهنگی می‌تواند باعث شود مسیرهای بعدی کرنل درباره نحوه استفاده از این صفحات، تصمیمی نادرست بگیرند.

پچ امنیتی این آسیب ‌پذیری در شاخه‌ های اصلی و پایدار کرنل لینوکس ارائه شده و Red Hat نیز اصلاحیه ‌های لازم را برای نسخه‌های آسیب ‌پذیر RHEL و محصولات مبتنی بر آن را منتشر کرده است.

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
هشدار سایبری CVE-2026-43503
شکل 1: تفسیر جدول CVSS

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

Versions Product
affectedat 3.9 Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before fbeab9555564a1b98e8582cd106dfe46c4606991 Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before 179f1852bdedc300e373e807cc102cd81feff196 Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before 12401fcfb01f53ccc63ab0a3246570fe8f3105ee Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before 989214c66884d70716d83dc1d0bf5e16287bf349 Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before fc6eb39c55e97df2f94ad974b8a5bbcd019da2c8

 

Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before ff375cc75f9167168db38e0464a482d5fbc8d81d

 

Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before 9bc9d6d6967a2239aa57af2aa53554eddd640d20 Linux
affectedfrom cef401de7be8c4e155c6746bfccf721a4fa5fab9before 48f6a5356a33dd78e7144ae1faef95ffc990aae0 Linux

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

Versions Product
unaffectedfrom 0 before 3.9 Linux
unaffectedfrom 5.10.257 through 5.10 Linux
unaffectedfrom 5.15.208 through 5.15 Linux
unaffectedfrom 6.1.174 through 6.1 Linux
unaffectedfrom 6.6.141 through 6.6 Linux
unaffectedfrom 6.12.91 through 6.12 Linux
unaffectedfrom 6.18.33 through 6.18 Linux
unaffectedfrom 7.0.10 through 7.0 Linux
unaffectedat 7.1 Linux
fbeab9555564a1b98e8582cd106dfe46c4606991 Linux
179f1852bdedc300e373e807cc102cd81feff196 Linux
12401fcfb01f53ccc63ab0a3246570fe8f3105ee Linux
989214c66884d70716d83dc1d0bf5e16287bf349 Linux
fc6eb39c55e97df2f94ad974b8a5bbcd019da2c8 Linux
ff375cc75f9167168db38e0464a482d5fbc8d81d Linux
9bc9d6d6967a2239aa57af2aa53554eddd640d20 Linux
48f6a5356a33dd78e7144ae1faef95ffc990aae0 Linux
NVIDIA for RHEL 10 Unaffected 0:6.12.0-211.8.el10nv
Unaffected 0:6.12.0-231.12.el10nv
Red Hat Enterprise Linux 10 Unaffected 0:6.12.0-211.16.1.el10_2
Red Hat Enterprise Linux 10.0 Extended Update Support Unaffected 0:6.12.0-55.75.1.el10_0
Red Hat Enterprise Linux 8 Unaffected 0:4.18.0-553.125.1.rt7.466.el8_10
Red Hat Enterprise Linux 8 Unaffected 0:4.18.0-553.125.1.el8_10
Red Hat Enterprise Linux 8 Unaffected
Red Hat Enterprise Linux 8.4 Advanced Mission Critical Update Support Unaffected 0:4.18.0-305.192.1.el8_4
Red Hat Enterprise Linux 8.4 Extended Update Support Long-Life Add-On Unaffected 0:4.18.0-305.192.1.el8_4
Red Hat Enterprise Linux 8.6 Advanced Mission Critical Update Support Unaffected 0:4.18.0-372.193.1.el8_6
Red Hat Enterprise Linux 8.6 Telecommunications Update Service Unaffected 0:4.18.0-372.193.1.el8_6
Red Hat Enterprise Linux 8.6 Update Services for SAP Solutions Unaffected 0:4.18.0-372.193.1.el8_6
Red Hat Enterprise Linux 8.8 Telecommunications Update Service Unaffected 0:4.18.0-477.143.1.el8_8
Red Hat Enterprise Linux 8.8 Update Services for SAP Solutions Unaffected 0:4.18.0-477.143.1.el8_8
Red Hat Enterprise Linux 8.8 Update Services for SAP Solutions Unaffected
Red Hat Enterprise Linux 9 Unaffected 0:5.14.0-687.10.1.el9_8
Red Hat Enterprise Linux 9.0 Update Services for SAP Solutions Unaffected 0:5.14.0-70.180.1.el9_0 )
Red Hat Enterprise Linux 9.0 Update Services for SAP Solutions Unaffected 0:5.14.0-70.180.1.rt21.252.el9_0
Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions Unaffected 0:5.14.0-284.172.1.el9_2
Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions Unaffected 0:5.14.0-284.172.1.rt14.457.el9_2
Red Hat Enterprise Linux 9.2 Update Services for SAP Solutions Unaffected
Red Hat Enterprise Linux 9.4 Extended Update Support Unaffected 0:5.14.0-427.126.1.el9_4
Red Hat Enterprise Linux 9.4 Update Services for SAP Solutions Unaffected
Red Hat Enterprise Linux 9.6 Extended Update Support Unaffected 0:5.14.0-570.116.1.el9_6
Red Hat Enterprise Linux 9.6 Extended Update Support Unaffected
Red Hat OpenShift Container Platform 4.12 Unaffected 412.86.202605271418-0
Red Hat OpenShift Container Platform 4.13 Unaffected 413.92.202605271328-0
Red Hat OpenShift Container Platform 4.15 Unaffected 415.92.202606030318-0
Red Hat OpenShift Container Platform 4.16 Unaffected 416.94.202605200242-0
Unaffected 416.94.202606051757-0
Red Hat OpenShift Container Platform 4.18 Unaffected 418.94.202605260517-0
Red Hat OpenShift Container Platform 4.19 Unaffected 4.19.9.6.202606031700-0
Red Hat OpenShift Container Platform 4.20 Unaffected 4.20.9.6.202605270908-0
Red Hat OpenShift Container Platform 4.21 Unaffected 4.21.9.6.202606030721-0
Red Hat Enterprise Linux 6 Unaffected
Red Hat Enterprise Linux 7 Unaffected
Red Hat Enterprise Linux 7 Unaffected
Red Hat OpenShift Container Platform 4 Unaffected

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

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

Approx. Usage in .ir Domain via Google (Total Pages) Search Query (Dork) Product
38,400 site:.ir “Linux kernel” Linux kernel

نتیجه گیری

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

  • بروزرسانی: کرنل لینوکس و بسته ‌های مرتبط را بروزرسانی کرده و پچ‌ های امنیتی ارائه ‌شده از سوی توزیع‌ کننده را نصب کنید. کاربران Red Hat نیز باید پچ‌ ها و بسته‌ های مربوط به نسخه مورد استفاده از RHEL را نصب کنند.
  • بررسی نسخه: نسخه کرنل مورد استفاده را با نسخه ‌ای که پچ امنیتی DirtyClone برای آن ارائه شده است، بررسی کنید. این کار مشخص می‌کند که آیا پچ مربوط به این آسیب ‌پذیری روی سیستم نصب شده است یا خیر؛ زیرا برخی توزیع‌ های لینوکس اصلاحات امنیتی را از طریق بک ‌پورت (Backport) در نسخه اختصاصی کرنل خود اعمال می‌کنند و ممکن است شماره نسخه کرنل تغییر محسوسی نداشته باشد.
  • محدودسازی دسترسی: دسترسی کاربران لوکال را به منابع و بخش ‌های ضروری سیستم محدود کنید. این اقدام احتمال سوءاستفاده از حساب‌های کاربری با دسترسی پایین را کاهش می‌دهد.
  • راه‌اندازی مجدد: پس از بروزرسانی کرنل، در صورت نیاز سیستم را راه ‌اندازی مجدد کنید. این اقدام باعث می‌شود کرنل بروزرسانی شده بارگذاری شود و پچ امنیتی نصب ‌شده در سیستم فعال شود.

در نهایت، نصب پچ‌ های رسمی کرنل و بروزرسانی‌های ارائه ‌شده از سوی توزیع ‌کننده، تنها راهکار مؤثر برای برطرف کردن آسیب ‌پذیری DirtyClone است. سایر اقدامات صرفاً با هدف کاهش احتمال سوء استفاده و مدیریت ریسک انجام می‌شوند.

امکان استفاده در تاکتیک‌های MITRE ATT&CK (در زمان اجرای حمله)

Execution (TA0002)

خودِ آسیب‌پذیری به‌تنهایی قابلیت اجرای کد را فراهم نمی‌کند. قابلیت اولیه، امکان نوشتن غیرمجاز در حافظهٔ نهان صفحه است. اما اگر مهاجم از این قابلیت برای تغییر یک فایل اجرایی، اسکریپت یا فایل پیکربندی حساس استفاده کند و سپس آن فایل توسط یک پردازه  با سطح دسترسی بالاتر اجرا شود، نتیجه می‌تواند اجرای کد باشد.

بنابراین، اجرای کد پیامد زنجیرهٔ بهره‌برداری از آسیب‌پذیری است، نه قابلیتی مستقل در خودِ آسیب‌پذیری.

Persistence (TA0003)

در صورت دستیابی به قابلیت نوشتن روی فایل‌های مناسب، مهاجم می‌تواند در یک سناریوی post-exploitation از آن برای ایجاد ماندگاری استفاده کند؛ برای مثال، با تغییر یک فایل پیکربندی یا artifact که در boot/login اجرا می‌شود.

Privilege Escalation (TA0004)

هسته اصلی آسیب ‌پذیری در این مرحله فعال می‌شود. مهاجم با استفاده از فرآیند رمزگشایی IPsec در محل (In-place Decryption)، محتوای باینری ‌های سیستمی مانند /usr/bin/su را در Page Cache تغییر می‌دهد. هنگامی که این باینری مجدداً اجرا می‌شود، نسخه دستکاری ‌شده با دسترسی root اجرا شده و مهاجم به دسترسی root ارتقا می‌یابد.

Defense Evasion (TA0005)

از آنجا که این حمله مستقیماً روی کش صفحه (Page Cache) در حافظه RAM انجام می‌شود و فایل روی دیسک تا زمان Sync شدن تغییر نمی‌کند، ابزارهای مانیتورینگ یکپارچگی فایل (FIM) و لاگ ‌های استاندارد هسته قادر به شناسایی این دستکاری نیستند و مهاجم حضور خود را پنهان می‌کند.

Impact (TA0040)

با دسترسی کامل به سطح root، مهاجم می‌تواند به فایل ‌های حساس مانند /etc /shadow دسترسی پیدا کرده و هش‌ های رمز عبور کاربران را استخراج کند. همچنین می‌تواند حساب‌ های کاربری جدید با دسترسی مدیریتی ایجاد کند که برای حملات بعدی، حرکت جانبی (Lateral Movement) و تسخیر کل زیرساخت شبکه مورد استفاده قرار گیرند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2026-43503
  2. https://www.cvedetails.com/cve/CVE-2026-43503/
  3. https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-43503
  4. https://vuldb.com/vuln/365335
  5. https://github.com/gl1tch0x1/DirtyClone
  6. https://git.kernel.org/stable/c/fbeab9555564a1b98e8582cd106dfe46c4606991
  7. https://git.kernel.org/stable/c/179f1852bdedc300e373e807cc102cd81feff196
  8. https://git.kernel.org/stable/c/12401fcfb01f53ccc63ab0a3246570fe8f3105ee
  9. https://git.kernel.org/stable/c/989214c66884d70716d83dc1d0bf5e16287bf349
  10. https://git.kernel.org/stable/c/fc6eb39c55e97df2f94ad974b8a5bbcd019da2c8
  11. https://git.kernel.org/stable/c/ff375cc75f9167168db38e0464a482d5fbc8d81d
  12. https://git.kernel.org/stable/c/9bc9d6d6967a2239aa57af2aa53554eddd640d20
  13. https://git.kernel.org/stable/c/48f6a5356a33dd78e7144ae1faef95ffc990aae0
  14. https://access.redhat.com/security/cve/CVE-2026-43503
  15. https://bugzilla.redhat.com/show_bug.cgi?id=2480902
  16. https://nvd.nist.gov/vuln/detail/cve-2026-43503
  17. https://cwe.mitre.org/data/definitions/664.html