
إثبات مفهوم لاستغلال CVE-2019-12735 يوضح تنفيذ أوامر عشوائية عبر ميزة modeline في Vim/Neovim. يتضمن حقن شيلكود وتوليد حمولة شل عكسية لاختبار الأمان التعليمي.
الشرط الأساسي هو تفعيل ميزة modeline
ميزة modeline مفعلة افتراضيًا للمستخدم العادي، بينما تكون معطلة افتراضيًا لمستخدم root.
استخدم echo &modeline للتحقق من حالة التفعيل: 1 تعني مفعّل و0 تعني معطّل
إذا لم تكن مفعلة، يمكنك إضافة set modeline في ~/.vimrc (وإذا لم يكن الملف موجودًا، قم بإنشائه بنفسك)
عند كتابتها بنفسك، يجب مراعاة أن حرف الإفلات x1b هو حرف غير قابل للعرض
إذا أردت تعديل كود الاستغلال في الجزء الثاني، فالطريقة البسيطة هي تنزيل الملف المصدر وتعديل جزء تنفيذ الأوامر، كما يمكنك استخدام محرر ثنائي للكتابة أو التعديل بنفسك.
poc.txt:
vim poc.txt
shell.txt:
nc -lvp 9999
vim shell.txt
ثم يمكنك الحصول على شل