Vim中的漏洞允许在打开TXT时执行代码

Vim的

各种发行版中预安装的文本编辑器中修复了一个新漏洞 找到Linux 在Vim和Neovim文本编辑器中 (CVE-2019-12735)。

在这些编辑器中发现的错误 当用户打开恶意文本文件时,允许黑客控制计算机。 默认情况下启用了modeline活动(“:set modeline”)就可以显示该问题,它使您可以在正在处理的文件中定义编辑选项。

Vim及其NeoVim分支包含一个存在于模式行中的缺陷。 此功能允许用户在文本文件的开头或结尾附近指定窗口尺寸和其他自定义选项。

在Vim 8.1.1365 Neovim 0.3.6之前的版本中,默认情况下启用此功能,并且适用于所有文件类型,包括.txt文件。

关于Vim中的漏洞

通过Modeline, 只允许有限数量的选项。 小号如果将表达式指定为选项值,则它将在沙盒模式下运行,该模式仅允许使用最简单的安全操作。

与此同时, 命令“:source”是允许使用的命令之一,可以在其中使用修饰符“!”。 从指定文件运行任意命令。

因此,要执行该代码,只需在modeline行中以“ set foldexpr = execute('\:source!Some_file'):”形式构造即可。 在Neovim中,禁止执行调用,但是可以使用assert_fails代替。

另一方面,在沙箱中,它旨在防止出现以下副作用:

选项“ foldexpr”,“ formatexpr”,“ includeexpr”,“ indentexpr”,“ statusline”和“ foldtext”都可以在沙箱中进行评估。 这意味着您可以免受这些表达式的困扰,并具有令人不快的副作用。 从模型定义这些选项时,这提供了一定的安全性。

虽然模型限制了可用命令并在与操作系统隔离的环境中执行它们, 研究人员Armin Razmjou注意到命令:字体! 规避了此保护措施:

研究人员在本月初发布的消息中写道:“她读取并执行给定文件中的命令,就像手动输入命令一样,一旦离开沙箱就执行它们。” -ci。

因此,可以轻松构建一条模型行,该模型行在沙箱外部执行代码。

帖子包括两个原则证明文本文件,其中之一以图形方式说明了威胁。

其中之一在运行Vim或NeoVim的计算机上打开一个反向外壳。 从那里,攻击者可以在被请求的计算机上启动他们选择的命令。

Razmjou写道:“此PoC描述了一种真正的攻击方法,其中当用户打开文件时启动反向Shell。” «要隐藏攻击,打开文件后将立即将其重写。 同样,当内容用cat打印时,PoC使用终端转义序列来隐藏模型线。 (cat -v显示实际内容)。 «

命令执行漏洞需要激活标准建模功能,默认情况下在某些Linux发行版中。 在8.1.1365版之前的Vim和​​0.3.6版之前的Neovim中发现了该缺陷。

美国国家标准技术研究院国家漏洞数据库的此咨询表明,Debian和Fedora Linux发行版已开始发布固定版本。

在发行版中,此问题已解决 RHEL,SUSE / openSUSE,Fedora,FreeBSD,Ubuntu,Arch Linux和ALT。

该漏洞在Debian中仍未得到纠正 (在Debian modeline中默认情况下将其禁用,因此该漏洞不会以默认状态显示)。

MacOS的最新版本继续使用易受攻击的版本,尽管攻击仅在用户更改了启用了举报功能的默认设置后才起作用。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。