
CVE-2019-12735 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट जो Vim/Neovim मॉडलाइन सुविधा के माध्यम से मनमाना कमांड निष्पादन प्रदर्शित करता है। शैक्षिक सुरक्षा परीक्षण के लिए शेलकोड इंजेक्शन और रिवर्स शेल पेलोड जनरेशन शामिल है।
modeline फ़ंक्शन को सक्षम करना आवश्यक है।
सामान्य उपयोगकर्ता के लिए modeline फ़ंक्शन डिफ़ॉल्ट रूप से सक्षम होता है, जबकि root उपयोगकर्ता के लिए यह डिफ़ॉल्ट रूप से बंद होता है।
सक्षम स्थिति जांचने के लिए echo &modeline का उपयोग करें — 1 का अर्थ सक्षम, 0 का अर्थ बंद।
यदि यह सक्षम नहीं है, तो आप ~/.vimrc (यदि फ़ाइल मौजूद नहीं है तो उसे स्वयं बनाएँ) में set modeline जोड़ सकते हैं।
स्वयं लिखते समय ध्यान रखें कि escape कैरेक्टर x1b एक गैर-प्रदर्शन कैरेक्टर है।
दूसरे भाग के exploit कोड को संशोधित करने का सरल तरीका स्रोत फ़ाइल डाउनलोड करके निष्पादन कमांड वाले भाग को बदलना है; आप बाइनरी एडिटर का उपयोग करके भी इसे स्वयं लिख या संशोधित कर सकते हैं।
poc.txt:
vim poc.txt
shell.txt:
nc -lvp 9999
vim shell.txt
फिर आप shell प्राप्त कर सकते हैं
1.vim को >= 8.1.1365 तथा neovim को > v0.3.6 पर अपडेट करें
2.vimrc में set nomodeline जोड़ें, जिससे modeline अक्षम हो जाए
3.अज्ञात स्रोतों से मिली फ़ाइलों को आसानी से न खोलें