Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-31431-live-code-corruption — CVE-2026-31431 (Copy Fail) استغلال جديد: إفساد الكود المباشر عبر ذاكرة التخزين المؤقت للصفحات. يستبدل كود libc exit() من خلال مشاركة صفحات MAP_PRIVATE — يؤثر على جميع العمليات الجارية. | Kitploit
أدوات/GitHubGitHub/ikow/cve-2026-31431-live-code-corruption
تصعيد الامتيازاتأطر الاستغلالتحليل الثغرات الأمنيةالاستغلالاستغلال الملفات الثنائية
GitHubikow/cve-2026-31431-live-code-corruption

CVE-2026-31431-live-code-corruption

CVE-2026-31431 (Copy Fail) استغلال جديد: إفساد الكود المباشر عبر ذاكرة التخزين المؤقت للصفحات. يستبدل كود libc exit() من خلال مشاركة صفحات MAP_PRIVATE — يؤثر على جميع العمليات الجارية.

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودع
1منذ 3 أشهرلم تتم المراجعة بعد

CVE-2026-31431 — إفساد الكود الحي عبر ذاكرة التخزين المؤقت للصفحات

تقنية استغلال جديدة لثغرة CVE-2026-31431 ("Copy Fail") تُفسد الكود القابل للتنفيذ للعمليات الجارية عبر ذاكرة التخزين المؤقت للصفحات في نواة لينكس، مما يحقق تصعيد الامتيازات إلى الجذر.

ما الجديد

جميع الاستغلالات المنشورة لهذه الثغرة تُفسد ملفات البيانات — بتعديل /etc/passwd لتغيير UID الخاص بالجذر، أو بتصحيح ثنائيات setuid على القرص. هذا الاستغلال يفعل شيئًا مختلفًا جوهريًا: فهو يُفسد الكود القابل للتنفيذ الحي في الذاكرة عبر آلية ذاكرة التخزين المؤقت للصفحات في النواة.

الاستغلالات المنشورةهذا الاستغلال
الهدفملفات البيانات (/etc/passwd, /usr/bin/su)الكود القابل للتنفيذ (قسم .text في libc)
الآليةمحتوى الملف الذي تحلله البرامجصفحات الكود التي تنفذها وحدة المعالجة المركزية مباشرة
النطاقملف واحدجميع العمليات التي تعيّن libc
تغيير القرصنعم (تم تعديل محتوى الملف)لا (فقط ذاكرة التخزين المؤقت للصفحات في الذاكرة)
الاكتشافمراقبة سلامة الملفاتغير مرئي لفحوصات نظام الملفات

كيف يعمل

الرؤية الثاقبة لذاكرة التخزين المؤقت للصفحات

عندما يعيّن لينكس مكتبة مشتركة باستخدام MAP_PRIVATE، فإنه لا ينسخ صفحات الملف فورًا. بدلاً من ذلك، تشير إدخالات جدول الصفحات الخاصة بالعملية مباشرة إلى الصفحات الفعلية في ذاكرة التخزين المؤقت للصفحات. يحدث النسخ فقط عند الكتابة (النسخ عند الكتابة). بالنسبة لصفحات الكود (.text)، لا تكتب العمليات إليها أبدًا — لذا تظل مشتركة مع ذاكرة التخزين المؤقت للصفحات إلى الأبد.

root@kitploit:~
Process A (bash)     Process B (su)      Page Cache (libc)
  ┌──────┐            ┌──────┐            ┌──────────┐
  │ PTE  │───────────>│      │            │ exit():  │
  │      │            │ PTE  │───────────>│ endbr64  │
  └──────┘            └──────┘            │ push rax │
    MAP_PRIVATE         MAP_PRIVATE       │ ...      │
    (clean page)        (clean page)      └──────────┘
                                               ↑
                                    Copy Fail writes here!

تمنحنا CVE-2026-31431 كتابة محكومة من 4 بايت إلى ذاكرة التخزين المؤقت للصفحات لأي ملف قابل للقراءة. من خلال إفساد صفحات كود libc، نقوم بتعديل التعليمات التي تنفذها كل عملية.

الاستغلال

  1. اكتب الشيلكود (39 بايت) إلى موقع دالة on_exit() في ذاكرة التخزين المؤقت للصفحات في libc — 10 عمليات كتابة من 4 بايت لكل منها
  2. صَحّح exit() للقفز إلى الشيلكود الخاص بنا — كتابة واحدة من 4 بايت
  3. التحفيز: أي برنامج يستدعي exit() (عمليًا كل برنامج) ينفذ الشيلكود الخاص بنا

ينفذ الشيلكود setuid(0) ← setgid(0) ← execve("/bin/sh")، مما يمنح قشرة جذر.

نظرة عامة على CVE-2026-31431

  • الخطأ: خطأ منطقي في crypto/algif_aead.c — تحسين في المكان لعام 2017 (72548b093ee3) يسمح لـ splice() بتغذية صفحات ذاكرة التخزين المؤقت للصفحات في فك تشفير AEAD. إعادة ترتيب ESN في خوارزمية authencesn تكتب 4 بايتات مؤقتة مرة أخرى إلى قائمة التشتت المصدرية، مما يُفسد ذاكرة التخزين المؤقت للصفحات للملف المُوصَّل.
  • الأولية: كتابة حتمية من 4 بايت إلى ذاكرة التخزين المؤقت للصفحات لأي ملف قابل للقراءة
  • المتطلبات: لا شيء — مآخذ AF_ALG متاحة للمستخدمين غير المميزين
  • الإصلاح: النسخ إلى مخزن مؤقت خارج المكان قبل عملية التشفير (النواة 6.12.85+، 6.15+)

الاستخدام

root@kitploit:~
# الترجمة
gcc -o exploit exploit.c

# التشغيل كمستخدم غير مميز
./exploit /lib/x86_64-linux-gnu/libc-2.31.so

# التحفيز — شغّل أي برنامج (يستدعي exit())
su -c id
# uid=0(root) gid=0(root) groups=0(root)

تم اختباره على

  • النواة: 6.12.79 (أوبونتو/ديبيان، قبل الإصلاح في 6.12.85)
  • glibc: 2.31-0ubuntu9.7
  • النتيجة: قشرة جذر كاملة، تم التحقق منها عبر سجل النواة: process 'id' launched '/bin/sh'

الملفات

  • exploit.c — الاستغلال الكامل مع حقن الشيلكود
  • copyfail_test.c — التحقق من الأولية (اختبار كتابة 4 بايت)

الجدول الزمني

  • 2017: تم تقديم تحسين في المكان (72548b093ee3)
  • 2026-04-29: تم الكشف عن CVE-2026-31431
  • 2026-04-30: تم إصدار الإصلاح في النواة 6.12.85
  • 2026-05-06: تم تطوير هذا الاستغلال (تقنية إفساد الكود الحي الجديدة)

المراجع

  • NVD — CVE-2026-31431
  • التزام الإصلاح
  • تحليل Copy Fail (Xint)

إخلاء المسؤولية

تُقدَّم هذه الأداة لأغراض البحث الأمني المصرح به والتعليم فقط. لا تستخدمها ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.

ذات صلة: Dirty Frag (7 مايو 2026)

كشف Dirty Frag عن متغيرين إضافيين للكتابة في ذاكرة التخزين المؤقت للصفحات في نفس فئة الخطأ:

  • مسار ESP (esp4/esp6): نفس مصب authencesn كما في Copy Fail، ويُصل إليه عبر IPsec ESP-in-UDP. يتطلب مساحات أسماء المستخدمين. كتابة من 4 بايت.
  • مسار RxRPC (rxrpc/rxkad): فك تشفير pcbc(fcrypt) في المكان على صفحة مثبتة عبر splice. لا يتطلب مساحات أسماء. كتابة من 8 بايت.

تعمل تقنية إفساد الكود الحي في هذا المستودع مع أي من أوليات الكتابة في ذاكرة التخزين المؤقت للصفحات هذه — فقط استبدل دالة write4() بمحفز ESP أو RxRPC. التقنية مستقلة عن الأولية.

تنزيل الأداة