重现Vim任意代码执行漏洞(CVE-2019-12735) 20181308

Vim任意代码执行漏洞(CVE-2019-12735)

前言

Vim通过Modelines执行任意代码
漏洞概要: 在8.1.1365之前的Vim和在0.3.6之前的Neovim很容易通过打开特制的文本文件而通过模型执行任意代码。

复现条件: 确保未禁用modeline选项(:set modeline)。

影响版本

重现Vim任意代码执行漏洞(CVE-2019-12735)         20181308

Vim < 8.1.1365

Neovim < 0.3.6

测试环境

重现Vim任意代码执行漏洞(CVE-2019-12735)         20181308

漏洞复现

首先下载复现所需文件

然后确保未禁用modeline选项。

开启modeline

vim /usr/share/vim/vimrc

大概在五十五行左右,写入 set modeline

重现Vim任意代码执行漏洞(CVE-2019-12735)         20181308

准备就绪后开始复现过程

首先打开我们的poc_uname.txt

重现Vim任意代码执行漏洞(CVE-2019-12735)         20181308

可以看到在使用vim打开的时候,是先执行了uname -a的这个命令。

然后我们进阶创建反弹shell。

首先启动本地9999的监听端口。

重现Vim任意代码执行漏洞(CVE-2019-12735)         20181308

然后打开我们的poc_shell.txt

重现Vim任意代码执行漏洞(CVE-2019-12735)         20181308

这时我们可以发现反弹成功,建立了shell连接。

重现Vim任意代码执行漏洞(CVE-2019-12735)         20181308

修复建议

一:打补丁
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

二:在vimrc(set nomodeline)中禁用model,使用securemodelines 插件。

参考博客:

1.https://blog.csdn.net/xuandao_ahfengren/article/details/106957146

2.https://www.jianshu.com/p/2d7201e9e94a

重现Vim任意代码执行漏洞(CVE-2019-12735) 20181308

上一篇:自学linux第三天(常用命令)


下一篇:mac下使用async-profiler