في منظومة الأمن السيبراني، لطالما تم الترحيب بشعار "أعد كتابتها بلغة Rust" باعتباره العلاج النهائي لثغرات تلف الذاكرة. كان الوعد بسيطًا: ضمانات وقت التحويل البرمجي ستقضي على فئات كاملة من الأخطاء. ومع ذلك، فإن الكشف عن CVE-2025-68260 في ديسمبر 2025 هذا الوهم بالحصانة المطلقة. تمثل هذه الثغرة نقطة تحول تاريخي: إنها أول ثغرة مؤكدة عالية الخطورة متجذرة في مكونات Rust في نواة لينكس.
بالنسبة لمهندسي الأمن المتشددين ومشرفي صيانة النواة والمتخصصين في الاختبار الخماسي، فإن CVE-2025-68260 أكثر من مجرد خطأ - إنها دراسة حالة في قيود التحليل الثابت. فهو يكشف حقيقةً خطيرة: لا يمكن لمدقق الاقتراض الصدأ أن ينقذك من المغالطات المنطقية في الداخل غير آمن كتل، خاصة عند حدود FFI.
يشرح هذا التحليل الشامل الآليات التقنية للثغرة الأمنية، وفشل الأغلفة الآمنة، وكيف تتطور نماذج الأمان القائمة على الذكاء الاصطناعي لالتقاط ما يفوت المُجمِّعين.
تحطّم الوهم: التشريح التقني لـ CVE-2025-68260
خلافًا للمفاهيم الخاطئة المنتشرة على نطاق واسع، لم يحدث CVE-2025-68260 في "الصدأ الآمن". بدلاً من ذلك، فقد ظهر على الحدود الغادرة بين Rust و C kernel القديمة - وتحديدًا داخل غير آمن كتلة في النظام الفرعي لبرنامج تشغيل الشبكة.
نقطة الضعف هي الاستخدام بعد التحرر من الاستخدام (UAF) حالة ناجمة عن حالة سباق، يمكن الوصول إليها عبر استدعاءات نظام فضاء المستخدم المحددة.
السبب الجذري المتغيرات المعطلة في الكتل غير الآمنة
للتكامل مع نواة لينكس Kernel، يستخدم Rust FFI (واجهة الدالة الأجنبية) للتواصل مع بنيات بيانات C. لجعل هذا الأمر مريحًا للمطورين، غالبًا ما يتم تغليف هذه المؤشرات الخام في هياكل Rust "الآمنة".
في CVE-2025-68260، تنبع الثغرة الأمنية من عدم تطابق بين دورة الحياة المفترضة لغلاف Rust ودورة حياة كائنات النواة الفعلية التي تديرها C.
المنطق الضعيف المفاهيمي:
الصدأ
`/// تمثيل مبسط لمنطق برنامج التشغيل الضعيف البنية NetDeviceWrapper { // مؤشر خام إلى بنية جهاز الشبكة من الجانب C raw_c_ptr: *mut c_void, }
// يفترض المطور سلامة مؤشر الترابط الصريح أو استمرار الكائن غير الآمن إرسال غير آمن ل NetDeviceWrapper {}
ضمنيًا NetDeviceWrapper { p p p p pn transmit_frame(&self, payload: &[u8]) { غير آمن { // VULNERABERABILITY: // تفترض شيفرة Rust أن "raw_c_c_ptr" صالح لأن "&self" موجود. // ومع ذلك، قد يكون كائن C الأساسي قد تم تحريره بواسطة // حدث نواة متزامن (على سبيل المثال، فصل الجهاز عن طريق استدعاء النظام). دع الجهاز = self.raw_c_c_ptr كـ *mut c_net_device;
// إلغاء الإحالة إلى مؤشر معلق يؤدي إلى UAF
// لا يمكن للمترجم رؤية أن "الجهاز" يشير إلى ذاكرة محررة.
(*الجهاز).ops.xmit(payload.as_ptr()، payload.len());
}
}
}`
بينما تحقق مترجم Rust من أن ونفسه كان صالحًا، لم يكن لديه أي رؤية لحالة الذاكرة التي أشار إليها raw_c_ptr. عندما قام جانب C من النواة بتحرير الجهاز بسبب حالة سباق، تُرك غلاف Rust يحمل مؤشرًا معلقًا.
هذا هو جوهر CVE-2025-68260: كان المترجم يثق في المطور البشري لدعم المتغيرات داخل غير آمن كتلة، وفشل الإنسان في حساب التزامن الفوضوي لنواة لينكس.
تحليل التأثير: من الذعر إلى تصاعد الامتيازات
في حين أن العَرَض المباشر لاستغلال CVE-2025-68260 غالبًا ما يكون ذعر النواة (DoS)، فإن تقنيات الاستغلال المتقدمة التي تتضمن رش الكومة (تستهدف تحديدًا كميلوك مخابئ) يمكن أن يحول هذا UAF إلى تصعيد الامتيازات المحلية (LPE) المتجه.
من خلال رش كومة النواة بالبيانات الخاضعة للرقابة، يمكن للمهاجمين الكتابة فوق البيانات المحررة صافي_الجهاز البنية. عندما يقوم كود Rust بتنفيذ رد الاستدعاء، فإنه يقفز إلى عنوان يتحكم فيه المهاجم، متجاوزًا بشكل فعال وسائل حماية النواة مثل KASLR (في حال تسربها) و SMEP/SMAP عبر سلاسل ROP.
الصدأ مقابل الثغرات القديمة: مقارنة
| الميزة | ثغرات C القديمة | CVE-2025-68260 (الصدأ) |
|---|---|---|
| السبب الرئيسي | تجاوزات المخازن المؤقتة، الذاكرة غير المهيأة | الأخطاء المنطقية في غير آمن الكتل، وعقود التمويل الأجنبي المعطلة |
| الكشف | سهل (KASAN، تحليل ثابت) | صعب (يبدو أنه رمز صالح من حيث السياق) |
| تعقيد الاستغلال | منخفضة/متوسطة (أساسيات معروفة) | مرتفع (يتطلب فهم تخطيط ذاكرة Rust) |
| التخفيف | التحقق من الحدود | التدقيق الدقيق لـ غير آمن الحدود |
دور الذكاء الاصطناعي في التدقيق في الصدأ غير الآمن: نهج Penligent
تعاني أدوات SAST (اختبار أمان التطبيقات الثابتة) التقليدية من مشكلة مع CVE-2025-68260. فهم يرون أن غير آمن استنتاج المؤشر. يفتقرون إلى السياق لمعرفة أن خارجيًّافقد يتم تحرير الكائن.
هذا هو المكان Penligent.ai تعيد تعريف الاختبار الخماسي الآلي. يستخدم Penligent وكلاء ذكاء اصطناعي متقدمين قادرين على التفكير الدلالي، وليس فقط مطابقة الأنماط.
- تحليل السياق الدلالي: يقوم محرك Penligent بتحليل الشيفرة البرمجية النية. يدرك أن المؤشر داخل غلاف Rust يعتمد على دورات حياة C-kernel الخارجية. يقوم بوضع علامة
غير آمنالكتل التي تفتقر إلى عمليات التحقق الصريحة من الصحة (مثل الرجوع إلى العد) لهذه الحالات الخارجية. - التشويش الآلي لظروف السباق: وإدراكًا لاحتمالية وجود أخطاء في التزامن، يمكن ل Penligent إنشاء ثغرات محددة في إثبات الأداء التي تضرب الواجهة بمكالمات النظام المتزامنة، مما يؤدي إلى الضغط على
غير آمنالافتراضات التي وضعها المطور.
نظرًا لأن نواة لينكس تتبنى المزيد من الصدأ (عبر الصدأ مقابل لينكس المشروع)، حجم غير آمن ستزداد كود الغراء. يوفر Penligent الرقابة الآلية والذكية اللازمة للتحقق من صحة هذه الحدود الحرجة حيث تفشل المراجعة البشرية في كثير من الأحيان.
الخاتمة: مستقبل أمن النواة
CVE-2025-68260 ليس اتهامًا لصدأ، بل هو علامة فارقة في النضج. إنه يعلم مجتمع الأمن ثلاثة دروس مهمة:
- سلامة الذاكرة ليست مطلقة: ينتهي حيث
غير آمنيبدأ. - لقد تغير سطح الهجوم: سينتقل المهاجمون من البحث عن تجاوزات بسيطة في المخازن المؤقتة إلى البحث عن العيوب المنطقية المعقدة في أغلفة FFI.
- يجب أن تتطور الأدوات: نحتاج إلى أدوات الجيل التالي مثل Penligent التي تفهم نماذج الذاكرة الهجينة للنواة الحديثة.
بالنسبة لمهندسي الأمان، الرسالة واضحة: يرفع Rust من مستوى المعايير بشكل كبير، لكنه لا يغلق الباب. تستمر عملية البحث عن الثغرات، ولكن في جزء مختلف وأكثر تعقيدًا من الكود.

