
إثبات مفهوم CVE-2026-64531 (OVSwrap) - تصعيد امتيازات محلي في نواة لينكس Open vSwitch؛ للتحقق من التصحيح والبحث الأمني
PoC لرفع الصلاحيات محليًا في وحدة Open vSwitch بنواة لينكس (مستخدم عادي ← root). يستغل التفاف الأعداد الصحيحة في حقل nla_len ذي 16 بت للارتقاء من مستخدم عادي إلى root.
عندما يتجاوز تدفق actions المتداخلة الذي يولّده OVS حد 65535 بايت، يلتف حقل nla_len ذو 16 بت. يمكن للمهاجم الذي يمتلك CAP_NET_ADMIN فقط داخل مساحة أسماء مستخدم/شبكة خاصة بناء action طويل من نوع CLONE، مما يجعل محلل النواة يقع في بيانات conntrack يتحكم بها المهاجم، فيحصل المهاجم بذلك على بدائيتي قراءة عشوائية من النواة وإنقاص كلمةً بكلمة، وينتهي به الأمر إلى التلاعب ببيانات اعتماده للارتقاء إلى root.
يعود أصل هذا الخطأ إلى إسناد غير آمن عمره 13 عامًا (commit 74f84a5726c7)، وكان محميًا سابقًا بحد أقصى للطول الإجمالي قدره 32KiB؛ وقد نُشّط بعد إزالة هذا الحد في commit a1e64addf3ff بتاريخ مارس 2025.
openvswitch في نواة لينكسunshare -Urn (بدون الحاجة إلى صلاحيات في مساحة الأسماء الأولية)سلاسل 6.13–6.17 و6.19 و7.0 وصلت إلى نهاية العمر (EOL) ولا يوجد إصلاح لها.
unshare -Urn) مع تثبيت sudo# 必须以普通(非 root)用户运行
python3 ovswrap-poc.py
ينتقل السكربت تلقائيًا عبر unshare -Urn إلى مساحة أسماء مستخدم+شبكة خاصة؛ ويتضمن جدول إزاحات مُشتق مسبقًا يغطي نحو 800 بناء لنواة x86-64، وفي حال عدم وجود تطابق يحاول الاشتقاق الديناميكي من System.map / BTF / pahole. وعند النجاح يحصل على شل root بدون كلمة مرور عبر كتابة مدخل في /etc/sudoers.d/.
للاستخدام في أبحاث الأمان والتحقق من الثغرات والاختبارات الدفاعية فقط. يعمل هذا الـ PoC على إتلاف بيانات اعتماد النواة وتعديل ملف sudoers وترك عمليات زومبي وحالة OVS تالفة؛ لذا يجب تشغيله حصريًا داخل جهاز افتراضي قابل للتدمير، وعدم تنفيذه في بيئات الإنتاج أو البيئات غير المصرّح بها.
3f1f755366687d051174739fb99f7d560202f60b| سلسلة النواة | النطاق المتأثر | أول إصدار مُصحَّح |
|---|
| 5.15.y | 5.15.180 – 5.15.211 | 5.15.212 |
| 6.1.y | 6.1.132 – 6.1.177 | 6.1.178 |
| 6.6.y | 6.6.84 – 6.6.144 | 6.6.145 |
| 6.12.y | 6.12.20 – 6.12.96 | 6.12.97 |
| 6.18.y | 6.18.0 – 6.18.39 | 6.18.40 |
| 7.1.y | 7.1.0 – 7.1.4 | 7.1.5 |