
استغلال تصعيد امتيازات محلي في نواة Linux لـ CVE-2026-31635 يفسد ذاكرة التخزين المؤقت للصفحات عبر فك تشفير RxRPC في المكان، ويكتب فوق ملفات للقراءة فقط، وينفذ شيل كود، مع وضع تحقق.
تصعيد صلاحيات محلي في لينكس عبر مسار فك تشفير RxRPC/GSSAPI. يؤدي التحقق المفقود لـ
skb_cow_data()فيrxgk_decrypt_skb()إلى السماح لمهاجم محلي غير ممتاز بإفساد صفحات ذاكرة التخزين المؤقت للصفحات (page cache) واستبدال محتويات الذاكرة للملفات المقروءة فقط.
يحتوي هذا المستودع على مواد البحث وإثبات المفهوم لـ CVE-2026-31635، وهو تصعيد صلاحيات محلي في نواة لينكس في net/rxrpc/rxgk.c.
تحدث الثغرة عندما يقوم RxRPC بفك تشفير الحزم في نفس المكان باستخدام AES-CBC دون التأكد أولاً من أن بيانات الحزمة خاصة. إذا بُنيت الحزمة من صفحات ذاكرة التخزين المؤقت للصفحات، فقد تقوم النواة بفك التشفير مباشرةً في ذاكرة مشتركة مدعومة بملفات.
اختر المسار الذي يتوافق مع هدفك:
CONFIG_RXGK./dirtydecrypt --checkcd exploitmakedocs/vulnerability-analysis.mddocs/patch-analysis.md و docs/exploit-development.md⚠️ هذا المستودع مخصص للأبحاث المصرح بها والاختبارات فقط. لا تستخدمه ضد أنظمة دون إذن صريح.
قم بتشغيل الفحوصات التالية لتحديد ما إذا كانت بيئتك ضمن النطاق:
uname -r
zgrep CONFIG_RXGK /proc/config.gz 2>/dev/null || grep CONFIG_RXGK /boot/config-$(uname -r)
إذا كانت النواة ضمن نطاق 6.10–6.13 وكان CONFIG_RXGK مفعّلاً، فقد يكون النظام عرضة للثغرة.
ثم استخدم وضع التحقق من إثبات المفهوم:
cd exploit
./dirtydecrypt --check
إذا نجح الفحص، يكون النظام عرضة للثغرة. إذا فشل نظيفًا أو أبلغ عن عدم وجود دعم RxRPC، فإن النواة غير قابلة للاستغلال.
يستخدم الاستغلال حزمة RxRPC مشوهة لإجبار النواة على فك التشفير في صفحة مشتركة من ذاكرة التخزين المؤقت للصفحات.
الخطوات:
rxgk_decrypt_skb() في النواة.تم توضيح الاستغلال في exploit/dirtydecrypt.c.
6.10 حتى 6.13CONFIG_RXGK=m أو CONFIG_RXGK=yrxgkCONFIG_RXGK معطل افتراضيًاgit clone https://github.com/0xFuffM3/CVE-2026-31635-DirtyDecrypt.git
cd exploit
make
للحصول على ملف ثنائي ثابت بالكامل:
make static
./dirtydecrypt --check
مثال للاستخدام:
./dirtydecrypt -f /usr/bin/sudo -o /tmp/sudo_patched
./dirtydecrypt -p shellcode/payload.bin
docs/vulnerability-analysis.mddocs/exploit-development.mddocs/patch-analysis.mddocs/affected-kernels.mdقم بتعطيل RxRPC إذا لم يكن مطلوبًا:
sudo rmmod rxrpc
sudo modprobe -r rxgk
echo "blacklist rxrpc" | sudo tee /etc/modprobe.d/blacklist-rxrpc.conf
قم بالترقية إلى إصدار نواة مصحح:
6.13.26.12.106.6.75تدقيق عمليات المقبس (socket) والمفاتيح ذات الصلة:
sudo auditctl -a always,exit -F arch=b64 -S socket -F a0=28 -k rxrpc_sock
س: هل يمكن لهذا الاستغلال تعديل الملفات على القرص؟
ج: لا. الثغرة تفسد محتويات ذاكرة التخزين المؤقت للصفحات فقط؛ الملف الداعم على القرص يبقى دون تغيير ما لم يتم تفريغ الصفحة لاحقًا.
س: هل هذه الثغرة موجودة في نوى أحدث من 6.13؟
ج: لا، تم إرجاع التصحيح ومسار الشيفرة الضعيف تم إصلاحه في النوى بعد 6.13.2.
س: ما هي الطريقة الأكثر أمانًا لاختبار هذا؟
ج: استخدم جهازًا افتراضيًا معزولاً بنواة افتراضية قابلة للاستغلال وحساب مستخدم قابل للتصرف.
س: أين يمكنني العثور على مصدر الاستغلال؟
ج: انظر exploit/dirtydecrypt.c و exploit/README.md.
CVE-2026-31635-DirtyDecrypt/
├── README.md
├── LICENSE
├── DISCLAIMER.md
├── CHANGELOG.md
├── exploit/
│ ├── README.md
│ ├── dirtydecrypt.c
│ ├── Makefile
│ └── shellcode/
│ └── payload.asm
└── docs/
├── vulnerability-analysis.md
├── exploit-development.md
├── affected-kernels.md
├── patch-analysis.md
└── references.md
MIT — انظر LICENSE.
هذا المستودع مخصص للاستخدام التعليمي ولأبحاث الأمن المصرح بها فقط.
| الخاصية | التفاصيل |
|---|
| CVE | CVE-2026-31635 |
| المكوّن | net/rxrpc/rxgk.c — rxgk_decrypt_skb() |
| السبب الجذري | تحقق مفقود من skb_cow_data() قبل فك التشفير |
| الأثر | تصعيد صلاحيات محلي إلى الجذر (root) |
| النوى المتأثرة | 6.10 – 6.13 |
| تم الإصلاح في | 6.13.2 · 6.12.10 · 6.6.75 |