
أداة استغلال لتصعيد الامتيازات محليًا تستهدف ثغرة في عداد المراجع (reference-count) في io_uring AF_VSOCK داخل نواة لينكس، وذلك باستخدام معالجة page-cache لاستبدال /usr/bin/su والحصول على شل بصلاحيات الجذر (root shell). صُممت لأغراض البحث والاختبار الأمني المصرح بهما.
مرآة توزيع من HackSpeak. هذا المستودع هو مرآة توزيع لـ MaherAzzouzi/vsockdrop، والكود مطابق للمصدر الأصلي؛ ولا يتضمن المصدر الأصلي ترخيص LICENSE، لذا تعتمد المرآة وفق اصطلاح التوزيع MIT License, Copyright (c) 2026 HackSpeak، مع بقاء حقوق الكود المصدري للمؤلف الأصلي MaherAzzouzi.
⚠️ يتضمن استغلالًا كاملًا لرفع الامتيازات المحلية (LPE) — يعدّل page-cache الخاص بـ
/usr/bin/su(وقد يستمر التعديل على القرص في أنظمة الملفات CoW)؛ للاستخدام في البحث الأمني والتحقق من الثغرات والاختبار المصرّح به فقط، شغّله فقط في بيئات معزولة تملكها أو لديك تفويض صريح لها، ولا تستخدمه ضد أنظمة غير مصرّح بها.
VsockDrop (CVE-2026-53365) هي ثغرة معالجة غير صحيحة لعداد المراجع في مسار الإرسال بصفر نسخ (zero-copy) عبر io_uring (AF_VSOCK) في نواة Linux، ويمكن أن تؤدي إلى رفع امتيازات محلية (LPE) لمستخدم غير مميز.
io_uring العلم SKBFL_MANAGED_FRAG_REFS ولكن مسار vsock لا يلتزم بهذا العلم → يستدعي __skb_frag_unref() الدالة put_page() على الصفحات المُدارة (managed pages) → استدعاء إضافي واحد لـ put_page عند كل إرسال، ما يخفض عداد pin مباشرة؛SEND_ZC، يُستنزف refcount = 1 + 1024 حتى يصل إلى 0 → تُحرَّر الصفحات التي ما زالت pinned إلى PCP freelist؛pread بارد واحد للصفحة 0 من /usr/bin/su، يُستعاد PFN الذي حُرر للتو من LIFO freelist → تصبح هذه الصفحة اسمًا مستعارًا (alias) لكل من io_uring fixed buffer و page-cache الخاصة بـ su؛write_fixed/read_fixed لإعادة كتابة سلسلة PT_INTERP في صفحة su لتصبح مسار loader الخاص بالمهاجم؛exec("/usr/bin/su") (setuid-root) → تُحمّل النواة loader الخاص بالمهاجم كمفسّر (interpreter) → الدخول بصلاحيات root → الحصول على root shell.make
./exploit
⚠️ عملية خطيرة: يعدّل الاستغلال محتوى /usr/bin/su داخل page-cache؛ وقد يستمر هذا التعديل على القرص في أنظمة الملفات CoW (مثل Btrfs وZFS). شغّله فقط في بيئة معزولة قابلة للتدمير.