
استغلال صعود صلاحيات محلي لنواة لينكس حتمي يربط بين بدائيتين لكتابة ذاكرة التخزين المؤقت للصفحات (xfrm/ESP و RxRPC) للحصول على وصول جذر موثوق على جميع التوزيعات الرئيسية منذ عام 2017.
تصعيد الامتيازات المحلي الشامل لنواة لينكس
| الحقل | التفاصيل |
|---|---|
| CVE | CVE-2026-43284 (xfrm/ESP) + CVE-2026-43500 (RxRPC) |
| الاسم المستعار | Dirty Frag |
| CVSS | 7.8 عالي |
| النوع | تصعيد الامتيازات المحلي (LPE) |
| مُقدَّم | نواة لينكس 4.10 (2017، الالتزام cac2661c53f3) |
| مُصحَّح | التزامات الخط الرئيسي f4c50a4034e6 / aa54b1d27fe0 |
| يتطلب | وصول إلى شل محلي بدون امتيازات |
| ناقل عن بُعد | لا شيء — محلي فقط |
| تم الإفصاح | 7 مايو 2026 بواسطة Hyunwoo Kim (@v4bel) |
خطأ منطقي في أنظمة xfrm/ESP و RxRPC في نواة لينكس يسمح لمستخدم محلي غير مميز بإجراء كتابة عشوائية محكمة ومحددة في ذاكرة التخزين المؤقت للصفحات لأي ملف قابل للقراءة على النظام — بما في ذلك الملفات الثنائية setuid مثل /usr/bin/su.
السبب الجذري هو فك التشفير غير الآمن في المكان لشظايا مخزن المقبس المشترك (skb) التي تشير إلى صفحات ذاكرة التخزين المؤقت للصفحات، خاصة عند استخدام splice(2) أو sendfile(2). يوفر هذا بدائية قوية للكتابة العشوائية في ذاكرة التخزين المؤقت للصفحات، والتي يمكن استغلالها لاستبدال الملفات الحساسة في الذاكرة وتحقيق وصول كامل للجذر.
يتم ربط بدائيتين مختلفتين لتحقيق تغطية شاملة:
كتابة ذاكرة التخزين المؤقت للصفحات عبر xfrm-ESP: تشترك في نفس المصب مع Copy Fail ولكن يتم تشغيلها عبر وحدات esp4/esp6، بغض النظر عن توفر algif_aead. يتطلب امتيازات إنشاء مساحة الأسماء.كتابة ذاكرة التخزين المؤقت للصفحات عبر RxRPC: لا يتطلب امتيازات مساحة الاسم، ولكن يجب أن تكون rxrpc.ko موجودة (يتم تحميلها افتراضيًا على أوبونتو). يغطي النقاط العمياء لـ CVE-2026-43284.ربط المتغيرين يجعلهما يغطيان النقاط العمياء لبعضهما البعض، محققين وصولًا موثوقًا للجذر في كل توزيعة رئيسية.
لا سباق. لا إعادة محاولة. لا خطر تعطل. محدد عبر جميع التوزيعات المختبرة.
هام: حتى على الأنظمة التي تم فيها تطبيق التخفيف المعروف لـ Copy Fail (القائمة السوداء لـ algif_aead)، يظل Dirty Frag قابلاً للاستغلال عبر CVE-2026-43284.
algif_aead (حل Copy Fail) بالكاملCVE-2026-43284 (xfrm/ESP): نواة لينكس من الالتزام cac2661c53f3 (2017-01-17) حتى f4c50a4034e6 (2026-05-05).
CVE-2026-43500 (RxRPC): نواة لينكس من الالتزام 2dc334f1a63a (2023-06-08) حتى aa54b1d27fe0 (2026-05-10).
العمر الفعال لسلسلة الثغرات هو حوالي 9 سنوات.
جميع التوزيعات الرئيسية التي تشحن نواة في هذا النطاق متأثرة، بما في ذلك:
gcc -O0 -Wall -o exp exp.c -lutil && ./exp
لا تستخدم على أنظمة غير مصرح لك باختبارها.
⚠️ هام: بعد تشغيل هذا الاستغلال، تكون ذاكرة التخزين المؤقت للصفحات ملوثة. لمسح ذاكرة التخزين المؤقت الملوثة وضمان استقرار النظام، قم بتشغيل:
echo 3 > /proc/sys/vm/drop_caches
أو أعد تشغيل النظام.
قم بتحديث النواة إلى إصدار يحتوي على إصلاحات الخط الرئيسي وأعد التشغيل.
تم الإصلاح في الخط الرئيسي عبر:
f4c50a4034e62ab75f1d5cdd191dd5f9c77fdff4aa54b1d27fe0c2b78e664a34fd0fdf7cd1960d71# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y && sudo reboot
# RHEL / AlmaLinux / CentOS Stream
sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
# SUSE / openSUSE
sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
# Fedora
sudo dnf upgrade --refresh && sudo reboot
إذا لم يكن من الممكن التصحيح فورًا، قم بتعطيل الوحدات القابلة للاستغلال ومسح ذاكرة التخزين المؤقت للصفحات.
# القائمة السوداء للوحدات القابلة للاستغلال
sudo sh -c 'printf "install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n" > /etc/modprobe.d/dirtyfrag.conf'
# إلغاء تحميل الوحدات فورًا
sudo rmmod esp4 esp6 rxrpc 2>/dev/null || true
# مسح ذاكرة التخزين المؤقت للصفحات
echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
لأحمال العمل غير الموثوقة — الحاويات، مشغلات CI، البيئات المعزولة — قم بتقييد إنشاء مآخذ AF_ALG و splice() عبر سياسة seccomp أو AppArmor بغض النظر عن حالة التصحيح. هذا يحد من سطح الهجوم حتى على النواة القابلة للاستغلال ولكنه ليس إصلاحًا كاملاً.
تحقق مما إذا كانت الوحدات القابلة للاستغلال محملة حاليًا أو قيد الاستخدام:
# تحقق إذا كانت الوحدات محملة
lsmod | grep -E 'esp4|esp6|rxrpc'
# تحقق إذا كان أي عملية لديها مقبس AF_ALG مفتوح
lsof | grep AF_ALG
ss -xa | grep alg
# تأكيد أن الحل المؤقت نشط بعد إعادة التشغيل
cat /etc/modprobe.d/dirtyfrag.conf
لماذا ربط ثغرتين؟
كتابة ذاكرة التخزين المؤقت للصفحات عبر xfrm-ESP توفر بدائية قوية لتخزين 4 بايتات عشوائية وهي موجودة في معظم التوزيعات، ولكنها تتطلب امتيازات إنشاء مساحة الأسماء — التي تمنعها أوبونتو أحيانًا عبر AppArmor. كتابة ذاكرة التخزين المؤقت للصفحات عبر RxRPC لا تتطلب امتيازات مساحة الاسم، ولكن rxrpc.ko ليست مضمنة في معظم التوزيعات — باستثناء أوبونتو، حيث يتم تحميلها افتراضيًا. ربط الاثنين يجعل النقاط العمياء لكل منهما تغطي الأخرى، محققة وصولًا موثوقًا للجذر في كل توزيعة رئيسية.
ما العلاقة مع Copy Fail (CVE-2026-31431)؟
بدائية xfrm-ESP تشترك في نفس مصب كتابة ذاكرة التخزين المؤقت للصفحات مثل CVE-2026-31431، ولكن يتم تشغيلها عبر الوحدتين esp4/esp6 بشكل مستقل عن algif_aead. تطبيق تخفيف CVE-2026-31431 (القائمة السوداء لـ algif_aead) لا يحمي من Dirty Frag.
لماذا اسم "Dirty Frag"؟
الثغرة تلوث عضو frag في struct sk_buff، مما يضعها في نفس فئة الأخطاء مثل Dirty Pipe — أخطاء منطقية تسمح بالكتابة غير المميزة في ذاكرة التخزين المؤقت للصفحات.
هذا المستودع مخصص لأغراض أمنية تعليمية ودفاعية فقط. لا تستخدم أي معلومات أو كود من هذا المستودع على أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها.
ابقَ آمنًا. صحح مبكرًا. صحح كثيرًا. اختراق سعيد 🛡️
| Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|
| شرط سباق مطلوب | نعم | جزئي | لا | لا |
| خاص بالإصدار | نعم | نعم | لا | لا |
| الموثوقية | غير مستقرة | متوسطة | محدد | محدد |
| تغطية التوزيعات | محدودة | محدودة | جميع منذ 2017 | جميع منذ 2017 |
| تجاوز تخفيف Copy Fail | — | — | غير قابل للتطبيق | نعم |
| التوزيعة | الإصدار المختبر | الحالة |
|---|
| Ubuntu 24.04.4 | 6.17.0-23-generic | متأثر — التصحيح قيد النشر |
| RHEL 10.1 | 6.12.0-124.49.1.el10_1.x86_64 | متأثر — التصحيح قيد النشر |
| AlmaLinux 10 | 6.12.0-124.52.3.el10_1.x86_64 | متأثر — التصحيح متاح |
| CentOS Stream 10 | 6.12.0-224.el10.x86_64 | متأثر — التصحيح قيد النشر |
| Fedora 44 | 6.19.14-300.fc44.x86_64 | متأثر — التصحيح متاح |
| openSUSE Tumbleweed | 7.0.2-1-default | متأثر — قيد المعالجة |
| Debian | — | متأثر — قيد المعالجة |
| المكون | التأثير |
|---|
| SSH | ✅ غير متأثر |
| dm-crypt / LUKS | ✅ غير متأثر |
| kTLS / TLS داخل النواة | ✅ غير متأثر |
| OpenSSL / GnuTLS / NSS (البنيات الافتراضية) | ✅ غير متأثر |
| IPsec / XFRM (أنفاق ESP، VPNs) | ⚠️ يتعطل — esp4 و esp6 سيكونان غير متاحين |
| عملاء AFS / OpenAFS الذين يستخدمون RxRPC | ⚠️ يتعطل — rxrpc سيكون غير متاح |
التطبيقات التي تستخدم AF_ALG + AEAD مباشرة | ⚠️ تحقق باستخدام lsof | grep AF_ALG |
| المورد | الرابط |
|---|
| إصلاح الخط الرئيسي لـ CVE-2026-43284 | f4c50a4034e6 |
| إصلاح الخط الرئيسي لـ CVE-2026-43500 | aa54b1d27fe0 |
| NVD — CVE-2026-43284 | https://nvd.nist.gov/vuln/detail/CVE-2026-43284 |
| NVD — CVE-2026-43500 | https://nvd.nist.gov/vuln/detail/CVE-2026-43500 |
| التاريخ | الحدث |
|---|
| 2017-01-17 | تم إدخال الانحدار لـ CVE-2026-43284 (cac2661c53f3) |
| 2023-06-08 | تم إدخال الانحدار لـ CVE-2026-43500 (2dc334f1a63a) |
| 2026-05-05 | تم تصحيح CVE-2026-43284 في الخط الرئيسي (f4c50a4034e6) |
| 2026-05-07 | الإفصاح العام |
| 2026-05-10 | تم تصحيح CVE-2026-43500 في الخط الرئيسي (aa54b1d27fe0) |
| 2026-05-10+ | بدء شحن تصحيحات التوزيعات |