
CVE-2026-31431 Copy Fail — مختبِر LPE لنواة Linux عبر MCP
📖 دليل التثبيت — بدء سريع، إعداد يدوي، واستكشاف الأخطاء وإصلاحها
CVE-2026-31431 — أسوأ ثغرة في لينكس اكتُشفت على الإطلاق. أصبحت الآن قابلة للتحكم عبر MCP.
732 بايت من بايثون. لا حاجة للتجميع. لا حالة سباق. لا إزاحات خاصة بالتوزيعات. طلقة واحدة، صلاحيات جذر شاملة على كل نواة لينكس بُنيت منذ 2017.
هذه الأداة عبارة عن خادم MCP ولوحة تحكم ويب تختبر أي نظام لينكس يمكن الوصول إليه للتحقق من وجود الثغرة. بُنيت لأن الـ PoC الأصلي سهل الاستخدام بالفعل — هذه الأداة تضيف فقط واجهة مستخدم، وفحصًا للشبكة، وتتبّعًا للأساطيل.
تحذير: هذه ثغرة تصعيد صلاحيات حقيقية على مستوى النواة. استخدمها فقط على أنظمة تملكها أو لديك إذن كتابي صريح لاختبارها. الاستخدام غير المصرّح به جناية في معظم الولايات القضائية.
1. اكتشفها ذكاء اصطناعي في ساعة واحدة.
منصة Xint Code التابعة لـ Theori فحصت النظام الفرعي crypto/ في لينكس بمطالبة
واحدة من المُشغِّل. وبعد ساعة واحدة، أصبح لديها ثغرة تصعيد صلاحيات محلية (LPE) شاملة
أفلتت من كل المراجعين البشريين، وأدوات التحليل الساكن، وأدوات fuzzing طوال تسع سنوات.
الثغرة موجودة منذ 2017 وتطلبت استدلالًا عبر الأنظمة الفرعية (أصل مقبس AF_ALG +
سلوك الكتابة الخدشية في authencesn) — تحديدًا نوع الروابط الذي
تتفوق فيه الأدوات المبنية أصلاً على نماذج اللغة الكبيرة (LLM). كانت تكلفة الاكتشاف ضئيلة.
والآثار المترتبة على مشهد الثغرات وجودية.
2. الاستغلال 732 بايت من بايثون خالص، بلا اعتماديات. لا حاجة لسلسلة أدوات تجميع. لا مكتبات لتثبيتها. لا إزاحات خاصة ببنية المعالج. يعمل بشكل متطابق على خوادم x86_64، وموجّهات aarch64، وأجهزة NAS بأنظمة ARM، وأي عتاد لينكس آخر يعمل ببايثون 3.10+. يمكنك لصقه في صدفة ويب، أو تمريره عبر netcat، أو كتابته من ذاكرة USB. حاجز تحويله إلى سلاح يساوي صفرًا فعليًا.
3. لا يترك أي أثر على القرص.
الاستغلال يُفسد فقط ذاكرة التخزين المؤقت للصفحات داخل النواة. الملف الثنائي
لـ /usr/bin/su على القرص لا يُعدَّل أبدًا. كل أداة تكامل ملفات تعمل بمقارنة
المجاميع الاختبارية على القرص — AIDE، Tripwire، dm-verity — لا ترى أي خطأ.
الفساد يختفي عند إعادة التشغيل. الطريقة الوحيدة لاكتشاف أن الاستغلال نُفِّذ هي
الإمساك به أثناء تنفيذه عبر auditd أو eBPF. لأغراض الطب الشرعي، الاستغلال غير مرئي.
4. مليارات الأجهزة لن تُصحَّح أبدًا.
أصدرت التوزيعات الكبرى (أوبونتو، RHEL، دبيان، SUSE) تصحيحات خلال 72 ساعة.
لكن خلل النواة مدمج في كل جهاز لينكس بُني منذ 2017 ويحتوي على
CONFIG_CRYPTO_USER_API_AEAD=y — وهو عمليًا جميعها. موجّهات OpenWrt
(لا تصحيح حتى 2026-05-02). كاميرات IP تعمل بنواة من البائعين من 2019. تلفزيونات ذكية
بفروع برمجيات مجمّدة. مضخات طبية تتطلب إعادة اعتماد من إدارة الغذاء والدواء (FDA)
لكل تحديث. وحدات تحكم صناعية بدورات دعم تمتد 10 سنوات. أجهزة
أندرويد محمية بقيود سياسة SELinux عرضية — وليس بإصلاح من النواة —
والأجهزة ذات صلاحيات الجذر/أنظمة ROM المخصصة، وأجهزة Fire اللوحية القديمة، وعصي
أندرويد التلفزيونية مكشوفة بالكامل. الرقم الإجمالي ليس بالملايين. إنه بالمليارات.
وبالنسبة لمعظمها، لن يأتي التصحيح أبدًا.
هذه أداة اختبار أمني وتوعية مبنية حول الـ PoC العام. لا تفعل شيئًا لا يفعله السكربت الأصلي المكوَّن من 732 بايت بالفعل. ما تضيفه:
الاستغلال نفسه عام، ويمكن نسخه بسهولة تامة، ولا يمكن إلغاء اكتشافه. هذه الأداة موجودة لجعل الاختبار سريعًا وآمنًا لمن لديهم إذن بالاختبار.
git clone https://github.com/sandraschi/copy-fail-mcp
cd copy-fail-mcp
just
يفتح هذا لوحة تحكم تفاعلية تعرض جميع الأوامر المتاحة. شغّل just bootstrap لتثبيت الاعتماديات، ثم just serve أو just dev للبدء.
إذا لم يكن لديك just مثبّتًا:
pip install copy-fail-mcp
copy-fail check --host 192.168.1.100
copy-fail serve --http --port 10955
User → AF_ALG socket (authencesn) → splice() target file → HMAC fails
↓
4 bytes written past AEAD boundary
↓
Into page cache of /usr/bin/su
↓
su is now corrupted in memory
↓
Run su → root shell
الخلل: سلوكان على مستوى الأنظمة الفرعية كانا غير مؤذيين كلٌّ على حدة، ويصبحان
قاتلَين عند دمجهما. مسار الـ splice في AF_ALG يعرض صفحات ذاكرة التخزين المؤقت كخرج قابل للكتابة.
authencesn يكتب 4 بايتات بعد حدود AEAD الشرعية كمساحة خدش.
اجمعهما معًا ويمكنك إفساد التمثيل في الذاكرة لأي ملف قابل للقراءة
ببيانات مضبوطة بدقة. يستهدف الاستغلال فحص الصلاحيات في /usr/bin/su.
MIT. سكربت الاستغلال من إعداد Taeyang Lee / Theori / فريق أبحاث Xint Code (الـ PoC الأصلي).
| الخاصية | Copy Fail | Dirty COW (2016) | Dirty Pipe (2022) |
|---|
| حجم الاستغلال | 732 بايت (مكتبة بايثون القياسية) | ~200 سطر بلغة C | ~100 سطر بلغة C |
| الحاجة إلى التجميع | لا — بايثون خالص | نعم — تجميع C | نعم — تجميع C |
| حالة السباق | لا — حتمية | نعم — نافذة سباق | لا |
| إزاحات خاصة بالتوزيعات | لا شيء — نفس السكربت في كل مكان | لا شيء | لا شيء |
| أثر على القرص | لا — ذاكرة التخزين المؤقت للصفحات فقط، والمجاميع الاختبارية سليمة | لا | لا |
| الهروب من الحاويات | نعم — ذاكرة تخزين مؤقتة مشتركة للصفحات | نعم | نعم |
| إصدارات النواة | >= 4.14 (2017–الآن) | >= 2.6.22 (2007–2018) | >= 5.8 (2020–2022) |
| الأجهزة المتأثرة | مليارات (ما تزال تتزايد) | أُصلحت في 2018 | أُصلحت في 2022 |
| لن تُصحَّح أبدًا | مليارات من أجهزة إنترنت الأشياء/المدمجة/الموجّهات | معظمها مُصحَّح | معظمها مُصحَّح |
| من اكتشفها | ذكاء اصطناعي (Xint Code، فحص لمدة ساعة) | باحث بشري | باحث بشري |
| تكلفة الاكتشاف | نحو 6$ في الحوسبة السحابية | أشهر من الجهد البشري | أشهر من الجهد البشري |
| الأداة | الوصف | مسار الدخول |
|---|
cf_scan_network | استكشاف شبكة فرعية /24 بحثًا عن مضيفات SSH وتحديد لينكس | مباشر (TCP غير متزامن) |
cf_check_target | فحص النواة، وإعداد AEAD، وحالة تصحيح التوزيعة | وكيل SSH |
cf_run_exploit | نشر الـ PoC عبر SSH، وتنفيذه، والإبلاغ عن الجذر | وكيل SSH |
cf_assess | فحص + استغلال في خطوة واحدة | وكيل SSH |
cf_apply_mitigation | قائمة حظر الوحدات أو قائمة حظر initcall | وكيل SSH |
cf_get_exploit_script | إرجاع الـ PoC الخام المكوَّن من 732 بايت كنص | أي قناة |
cf_exploit_local | كتابة الـ PoC إلى مسار محلي للنشر اليدوي | صدفة محلية |