
استغلال تصعيد الامتيازات في نواة لينكس لـ CVE-2026-46242، وهو عيب سباق استخدام بعد التحرير في epoll، مع جذر موثوق بنسبة 99% على أجهزة الكمبيوتر المكتبية والخوادم وأجهزة أندرويد.

عملية غير مميزة تتسع لصلاحيات الجذر على Google kernelCTF.
Bad Epoll (CVE-2026-46242) هي ثغرة من نوع سباق-شرط-استخدام-بعد-التحرير (race-condition use-after-free) في نظام epoll الفرعي في نواة لينكس. تسمح هذه الثغرة لعملية غير مميزة بأن تصبح جذرًا، ليس فقط على أجهزة لينكس المكتبية والخوادم ولكن أيضًا على أجهزة أندرويد.
تم الإبلاغ عن Bad Epoll واستغلالها بواسطة Jaeyoung Chung كإرسال ليوم صفر إلى Google kernelCTF، والتي تكافئ استغلال نواة لينكس بمبلغ $71,337+.
[!NOTE] وجد ذكاء Anthropic الاصطناعي، Mythos، ثغرة سباق أخرى في نفس كود epoll لكنه فاته Bad Epoll.
ثغرة نادرة يمكنها منح صلاحيات الجذر لأندرويد. معظم ثغرات تصعيد الصلاحيات في لينكس لا يمكنها منح صلاحيات الجذر لأندرويد على الإطلاق. Copy Fail ومتغيراتها، على سبيل المثال، تحتاج إلى وحدات لا يقوم أندرويد بتحميلها أبدًا. من بين ما يقرب من 130 ثغرة تم استغلالها على Google kernelCTF، فقط حوالي عشرة منها هي مرشحة لمنح صلاحيات الجذر لأندرويد. Bad Epoll هي واحدة منها.
لا يوجد مفتاح إيقاف. يمكن تحييد Copy Fail ومتغيراتها عن طريق تفريغ وحداتها المعرضة للخطر، لكن epoll لا يحتوي على مثل هذا الخيار. إنها ميزة نواة أساسية يعتمد عليها نظام التشغيل وخدمات الشبكة والمتصفحات. الطريقة الوحيدة لإصلاحها هي تطبيق التصحيح.
نافذة سباق ضئيلة، لكن الهجوم موثوق بنسبة 99%. نافذة سباق الثغرة عرضها حوالي ست تعليمات فقط، والمحاولة العادية لا تصطدم بها تقريبًا أبدًا. يُوسع الاستغلال تلك النافذة ويُشغل حلقة إعادة محاولة لا تُعطل النواة أبدًا. والنتيجة هي استغلال موثوق بنسبة 99%، كما يصف نظرة عامة على الهجوم أدناه.
أدخل commit واحد في عام 2023 شرطي سباق منفصلين في كود epoll، حوالي 2,500 سطر فقط في المجموع. اتضح أن كلاهما ثغرات حرجة يمكن أن تؤدي إلى تصعيد الصلاحيات.
تم العثور على الأولى بواسطة Mythos من Anthropic وتم الإبلاغ عنها باسم CVE-2026-43074. هذه النتيجة مثيرة للإعجاب بحد ذاتها، لأن ثغرات سباق النواة معروفة بأنها صعبة الاكتشاف. أظهرت قدرة نموذج ذكاء اصطناعي متقدم على العثور على ثغرات سباق. قام باحث مستقل لاحقًا بتقديم استغلال ليوم واحد لها إلى kernelCTF.
السباق الآخر هو Bad Epoll، الذي فاتته Mythos. نظرًا لأن Mythos عثرت على الثغرة الأولى في مسار كود epoll الصغير هذا، فمن المحتمل أنها فحصت نفس المنطقة بعمق كبير. لا يمكننا معرفة السبب الدقيق الذي جعلها تفوت Bad Epoll، لكن هناك عاملان جعلاه من الصعب العثور عليه.
نافذة السباق ضئيلة. عرضها حوالي ست تعليمات فقط، لذا يصعب تخيل التداخل الدقيق للخيوط حتى عند النظر إلى الكود المعرض للخطر.
كان هناك القليل من الأدلة في وقت التشغيل. بعد إصلاح CVE-2026-43074، فإن استخدام بعد التحرير (use-after-free) في Bad Epoll لا يؤدي عادةً إلى تشغيل KASAN، كاشف أخطاء الذاكرة الرئيسي للنواة. بدون تلك الإشارة، ربما لم تكن Mythos لديها الثقة الكافية للإبلاغ عنها كثغرة حقيقية.
كان إصلاح Bad Epoll صعبًا أيضًا. التصحيح الأول للمسؤولين لم يصلح المشكلة بالكامل، وتم إصدار تصحيح صحيح بعد شهرين فقط من الإبلاغ الأول عن الثغرة. هذه مدة طويلة لنواة تتعامل عادةً مع المشكلات الأمنية بإلحاح.
بشكل عام، يُظهر Bad Epoll مدى صعوبة شروط السباق في كل مرحلة. فهي صعبة الاكتشاف حتى بالنسبة لنموذج متقدم، وصعبة الإصلاح بشكل صحيح، وكما يوضح القسم التالي، صعبة الاستغلال بشكل موثوق. كما أنه يقترح اتجاهًا بحثيًا للثغرات يظل جديرًا بالاستكشاف في وجود نماذج الذكاء الاصطناعي المتقدمة: كشف التأثير الأمني الحقيقي وراء ظروف التوقيت الضيقة والأدلة الضعيفة.
إليك نظرة عامة عالية المستوى للهجوم، للمهتمين.
كائنان epoll مرتبطان. إغلاق كلاهما معًا يُشغل السباق.
مساران من مسارات الإغلاق في epoll يعملان في نفس الوقت ويتصادمان. واحد يحرر كائنًا بينما الآخر لا يزال يكتب فيه، وهذا هو استخدام بعد التحرير (UAF).
نافذة السباق، وكيف يقودها الاستغلال.
يستخدم الاستغلال أربعة كائنات epoll مقسمة إلى زوجين. زوج واحد يُشغل السباق، بينما يصبح الآخر الضحية. من هناك، يحول الاستغلال كتابة UAF ذات 8 بايت إلى UAF على كائن ملف، ويستخدم هجومًا عبر التخزين المؤقت للسيطرة الكاملة على محتويات الملف.
تحويل الثغرة إلى قراءة عشوائية لذاكرة النواة عبر /proc/self/fdinfo.
بعد تلك السيطرة، يحصل الاستغلال على قراءة عشوائية لذاكرة النواة عبر /proc/self/fdinfo. أخيرًا، يختطف تدفق التحكم وينفذ سلسلة ROP للحصول على شل الجذر.
مزيد من التفاصيل متوفرة في الشرح الكامل للاستغلال والكود.
نظرًا لأنه لا يمكن تعطيل epoll، فلا يوجد حل بديل بسيط لـ Bad Epoll. العلاج الوحيد هو تطبيق التصحيح.
a6dc643c6931، أو التصحيح الخلفي لتوزيعة Linux الخاصة بك بمجرد توفره.تم إدخال Bad Epoll بواسطة 58c9b016e128 (2023-04-08) وإصلاحها بواسطة a6dc643c6931 (2026-04-24).
قد تتأثر العديد من توزيعات لينكس إذا كانت تستخدم نواة بناءً على v6.4 أو أحدث ولم تقم بعد بنقل التصحيح خلفيًا. تحقق من تحديثات أمان النواة لتوزيعتك للحصول على نقل خلفي لـ commit الإصلاح أعلاه. النوى القديمة المبنية على v6.1 غير متأثرة لأن الثغرة أُدخلت في v6.4.
الاستغلال الحالي مكتوب للأهداف التالية في Google kernelCTF.
lts-6.12.67 (LTS)، موثوق بنسبة 99%cos-121-18867.294.100 (COS)، موثوق بنسبة 98%استغلال أندرويد لا يزال قيد التطوير.
يتبع الاسم سلسلة "Bad" من ثغرات النواة التي تمنح صلاحيات الجذر لأندرويد، والتي تتضمن إدخالاتها السابقة Bad Binder و Bad IO_uring و Bad Spin. Bad Epoll هو النظير في epoll.
هذه الصفحة هي النسخة المختصرة. يمكنك العثور على التحليل الكامل للسبب الجذري، وشرح الاستغلال، وكود الاستغلال في الروابط التالية.
تم الإبلاغ عن Bad Epoll واستغلالها بواسطة Jaeyoung Chung.
شكر جزيل لمجموعتنا البحثية، CompSec Lab، وخاصةً Eulgyu Kim و Woohyuk Choi و Dae R. Jeong ومستشاري Byoungyoung Lee، لتوجيههم ودعمهم.
| التاريخ | الحدث |
|---|
| 2023-04-08 | تم إدخال الثغرة إلى epoll (commit 58c9b016e128). |
| 2026-02-17 | أبلغنا عن الثغرة إلى [email protected]. |
| 2026-02-17 | اقترح المسؤولون نموذجًا أوليًا للتصحيح، لكنه لم يكن إصلاحًا صحيحًا ثم توقف النقاش. |
| 2026-04-02 | تم إصدار إصلاح الثغرة التي وجدتها Mythos (CVE-2026-43074) في الفرع الرئيسي. |
| 2026-04-22 | أعدنا الإبلاغ عن المشكلة المتبقية. |
| 2026-04-24 | تم إصدار إصلاح هذه الثغرة في الفرع الرئيسي (commit a6dc643c6931). |