
أداة بحث في ثغرات نواة لينكس مدركة للمصدر (Provenance-aware) تُستخدم في التحقيق في الثغرة الأمنية CVE-2026-53075
أداة بحث · استيراد أصلي: 3 أبريل 2026 · مراجعة توثيق الإصدار v2: 11 يوليو 2026
إشارة خارجية: من توزيع الانتباه إلى الفرز الواعي بالمصدر
استخدم ملاحظات قابلة لإعادة الإنتاج لتوجيه انتباه النموذج، ثم استخدم مصدر المستودع لتنظيم قوائم المراجعة—وليس أبدًا لإثبات الادعاءات.
نسب المشروع— Kernel Codex Harness v1 · توزيع الانتباه → Kernel Codex Harness v2 · الفرز الواعي بالمصدر
حالة المشروع. هذا المستودع هو أداة بحث مساعدة بنماذج لغوية كبيرة (LLM) تطور سير عمل توزيع الانتباه من الإصدار v1 إلى الفرز الواعي بالمصدر للتحقيق الفعلي في ثغرات نواة Linux. استُخدم هذا الإصدار لاكتشاف الثغرة المنشورة باسم CVE-2026-53075. ليس أداة كشف تلقائي للثغرات، ولا أداة حكم على الجدة، ولا أداة تحقق من الاستغلال، ولا أداة ضمان أمني للنواة؛ التحقق النهائي والتقرير يتمان بواسطة البشر.
الملخص— عند ترك نموذج لغوي كبير يستكشف قاعدة كود ضخمة مثل نواة Linux مباشرة، يتشتت السياق وتختلط بسهولة وجود واجهات برمجية خطرة مع إمكانية الهجوم الفعلية. يعالج Kernel Codex Harness v2 هذه المشكلة عبر مرحلتين من معالجة الإشارة الخارجية. قبل استدعاء النموذج، تُرتَّب الملفات المرشحة عبر أوزان المسارات، والضربات المعجمية، وتداخل syzbot المخزن لتوزيع الانتباه. بعد استجابة النموذج، تُدمج حالة Git (الفرع، HEAD، الحالة المتسخة) مع مراجع CVE والالتزامات والعلامات المعروفة المستخرجة من الاستجابة لتصنيف النتائج القوية في مجموعات مراجعة واعية بالمصدر. استُخدمت هذه الأداة في تحقيق فعلي في نواة Linux اكتشف خللًا في التحقق من صلاحيات مساحة اسم الشبكة المستهدفة في PPP، نُشر باسم CVE-2026-53075. الفرز هو أسلوب استدلالي لتنظيم قوائم التحقيق، وخاصةً new_candidate تعني فقط عدم العثور على أدلة معروفة أو مشكلات مصدر، وليست إثباتًا للجدة. تتطلب جميع النتائج إعادة تحقق بشرية من قابلية الوصول من مساحة المستخدم، وكسر الثوابت، والأثر الملموس.
مصطلحات الفهرس— نواة Linux، بحث الثغرات، إشارة خارجية، مصدر، فرز استدلالي، تنسيق نماذج لغوية كبيرة، syzbot، Codex.
هناك نوعان مختلفان من عدم اليقين في مراجعة أمن النواة.
كانت المشكلة المركزية في v1 هي الأولى، أي توزيع الانتباه. يحافظ v2 على هذا المبدأ ويوسع المشكلة الثانية إلى فرز واعٍ بالمصدر. استُخدم كلا الإصدارين في تحقيقات فعلية؛ أدى التحقيق المدعوم بـ v1 إلى CVE-2026-31720، وأدى التحقيق المدعوم بـ v2 إلى CVE-2026-53075.
تُستخدم الملاحظات خارج النموذج لتضييق نطاق التحقيق، وبعد استجابة النموذج يُرفق مصدر مستودع قابل للتحقق. لا تثبت أي إشارة في أي مرحلة وجود ثغرة أو جدة.
الإشارة الخارجية قبل الاستدلال هي ملاحظات تُحسب قبل تشغيل النموذج، وليست حكمًا من نموذج لغوي كبير.
باستخدام نفس شجرة المصدر والملف الشخصي وJSON syzbot المخزن، يمكن إعادة حساب ترتيب المرشحين. هذه الدرجة ليست احتمالًا أو قابلية استغلال، بل ترتيب نسبي لتحديد من ننظر إليه أولًا.
تجمع مرحلة ما بعد الاستدلال المعلومات التالية مع الحكم النموذجي القوي.
في هذا المستند، تشير الإشارة الخارجية بعد الاستدلال فقط إلى المصدر الذي جُمع بشكل مستقل عن النموذج، مثل مستودع Git/الحالة، والفرع، وHEAD، والحالة المتسخة، ونسب الالتزامات المحلية. مراجع CVE والالتزامات والعلامات المعروفة هي مراجع مشتقة من النموذج مستخرجة من استجابته، وليست إشارة خارجية أو حقيقة موثوقة. يجمع الفرز بين نوعي المدخلات لكنه يسجل مصدر كل منهما بشكل منفصل.
تُنظم النتائج القوية تشغيليًا في إحدى مجموعات المراجعة التالية.
| المجموعة | المعنى |
|---|---|
new_candidate | مرشح تم التحقق من مصدره ولم تُكتشف إشارات حظر متسخة/معروفة |
known_issue | مرشح يحتوي على مرجع معروف غير منفي، أو استجابة تشير إلى علاقة إصلاح/أعلى المنبع مع التزام موجود في HEAD الحالي |
dirty_tree_suspect | مرشح لا يمكن استبعاد تأثير مستودع متسخ أو هدف متسخ عليه |
provenance_unknown | مرشح تعذر التحقق بشكل موثوق من مستودع Git أو حالته أو HEAD |
novelty_proven في جميع نتائج التصنيف هو false. new_candidate لا تعني "ثغرة جديدة"، بل قائمة انتظار يستمر فيها البشر في تحقيق الجدة أولًا.
يفحص التدقيق أولًا الحدود التي تبدأ من مساحة المستخدم، مثل syscall وioctl وnetlink وprocfs وأنظمة الملفات وBPF وخطافات برامج التشغيل. بعد ذلك فقط تُقيَّم فئات الثغرات مثل UAF وOOB وrefcount والسباق وتسريب المعلومات وفحوصات الصلاحيات.
تُقيَّد وحدة التحقيق الواحدة بملف واحد ومسارات الاستدعاء والتفكيك والتحرير القريبة منه. يُحدَّد عدد المتابعات اليدوية التي يقترحها النموذج بحد أقصى مرتين للحفاظ على مسارات قصيرة قابلة للتحقق بدلًا من استكشاف واسع.
يجب أن يشرح النتيجة القوية على الأقل ما يلي.
يقوم المحلل اللغوي بتطبيع الحكم والهدف التالي فقط، ولا يثبت تلقائيًا اكتمال هذه الأدلة.
انطلق التدفق الأولي من فكرة التحليل على مستوى الملف، وتوسيع السياق المحدود، والمخرجات المنظمة التي استخدمتها أداة vulnhuntr من Protect AI [1]. أُعيد تصميم هذا المشروع ليناسب سطح نواة Linux القابل للوصول من مساحة المستخدم، ودورة حياة كائنات النواة، ومسارات التفكيك، وتداخل syzbot. المساهمة الإضافية لـ v2 هي وضع مرحلة فرز النتائج باستخدام مصدر المستودع بعد توزيع الانتباه.
الشكل 1. الإشارة الخارجية قبل الاستدلال ترتب وحدات المراجعة القابلة لإعادة الإنتاج. الفرز بعد الاستدلال يجمع بين مصدر Git المستقل عن النموذج ومراجع الاستجابة المشتقة من النموذج، دون معاملة الأخيرة كإشارة خارجية أو حقيقة موثوقة. يبقى التحقق البشري خارج المرحلتين الآليتين.
الجدول الأول — مسؤوليات الوحدات الرئيسية
| الوحدة | المسؤولية |
|---|---|
targeting.py | استكشاف ملفات النواة وتسجيل درجات إشارات المسار والمعجم وsyzbot |
models.py | Candidate وSignal وExternalSignal المشتق من syzbot |
bundle.py | إنشاء البيان وفهرس الجلسة وحزمة المطالبات/المقتطفات |
prompting.py | مطالبات تدقيق النواة المرتكزة على قابلية الوصول والثوابت |
session.py | تخزين حالة المراجعات المعلقة والسجل وعمق المتابعة |
ingest.py | تطبيع الحكم الصارم والهدف التالي الوحيد |
repo_state.py | جمع فرع Git وHEAD والحالة والمسارات المتسخة والنسب |
finding_triage.py | تصنيف المجموعات الاستدلالية بناءً على المصدر والمراجع المعروفة |
autopilot.py | تنفيذ Codex بميزانية زمنية، والاستيعاب، والأرشفة، وتسجيل النتائج |
syzbot.py | جمع HTML syzbot العام وإنشاء ذاكرة JSON محلية |
cli.py | ربط أوامر scan/review/doctor/autopilot |