简介
远程 Amazon Linux 2023 主机缺少安全更新。
描述
因此,该软件受到 ALAS2023-2026-1862 公告中提及的多个漏洞影响。
Vim 是一个开源命令行文本编辑器。之前 9.2.0280Vim 的 zip.vim 插件中的路径遍历绕过可允许在打开特别构建的 zip 存档时覆盖任意文件,从而避开之前针对的 CVE-2025-53906 补丁。此漏洞已在 9.2.0280 中修复。
(CVE-2026-35177)
例:v9.2.0316 之前的 Vim 的 NetBeans 集成中的命令注入。netbeans defineAnnoType 命令将未经审查的 typeName、fg 和 bg 传递到 coloncmd(),从而允许恶意 NetBeans 服务器通过“|”注入任意 Ex 命令。同样,在构建 map 命令之前,specialKeys 不会验证密钥标记。(CVE-2026-39881)
Vim 是一个开源命令行文本编辑器。在 9.2.0383 之前的版本中,与 Vim 捆绑的 netrw 标准插件中存在一个 OS 命令注入漏洞。通过诱使用户打开构建的 URL(例如,使用 sftp:// 或 file:// 协议处理程序),攻击者可以 Vim 进程权限执行任意 shell 命令。已在版本 9.2.0383 中修补此问题。
(CVE-2026-42307)
当从全局标记文件列表中取消标记文件时,netrw 插件(“runtime/pack/dist/opt/netrw/autoload/netrw.vim”)的“s:NetrwMarkFile()”中存在一个 Vimscript 代码注入漏洞。
从缓冲区目录列表中派生的文件名值到传递到“filter()”的字符串表达式中,从而允许包含双引号的构建的文件名从引用的字符串文本中分出,并执行任意 Vimscript,包括通过“execute()”和“:!”的 shell 命令。
## Description's:NetrwMarkFile()' 维护两个标记文件列表:一个缓冲区本地列表和一个全局列表。
当文件未标记时,两个列表都会更新。buffer-local 列表使用安全模式:
调用 filter(s:netrwmarkfilelist_{curbufnr},'v:val != a:fname')
其中,'a:fname' 作为筛选器表达式内的变量引用,并在求值时解析。
但是,全局列表将文件名的值直接插值到表达式字符串中:
let dname = netrw#fs#ComposePath(b:netrw_curdir, a:fname)...调用 filter(s:NETRWMarkFileList, 'v:val != '.dname.'')
当“filter()”收到字符串参数时,该字符串将被解析为 aVimscript 表达式。包含 '' 的文件名会提早终止引号文本,之后文件名的剩余部分会被评估为 Vimscript。在注入的片段内,“execute(!cmd)”等调用以运行 Vim 的用户权限运行任意 Ex 命令。文件名通过“mf”映射到达“s:NetrwMarkFile()”,这会调用“s:NetrwGetWord()”以从 netrw 目录清单的当前行读取文件名。
注入仅在对指定条目第二次按下“mf”时触发,因为第一次按下会获取“add()”分支,而只有第二次按下会获取易受攻击的“filter()”分支。(CVE-2026-43961)
Vim 是一个开源命令行文本编辑器。在低于版本之前 9.2.0435,Vim 的 :find 命令行完成中存在 OS 命令注入漏洞。当 path 选项包含反撇号括起来的 shell 命令时,这些命令会在文件名完成期间执行。由于路径选项缺少 P_SECURE 标记,因此可以从 modeline 进行设置,从而允许控制文件内容的攻击者在用户在 Vim 中打开文件并触发 :find 完成时执行任意 shell 命令。已在版本 9.2.0435 中修补此问题。(CVE-2026-44656)
Vim 是一个开源命令行文本编辑器。在低于该版本 9.2.0450之前,加载 UTF-8 编码处于活动状态的构建拼写文件 (.spl) 时,src/spellfile.c 中的 read_compound() 存在堆缓冲区溢出。
spell 文件的复合部分中由攻击者控制的长度字段溢出 32 位有符号的整数乘法,导致为运行多次迭代的写入循环分配较小的缓冲区,从而溢出堆。由于可从 modeline 设置“spelllang”选项,如果在运行时路径上植入了恶意 .spl 文件,文本文件 modeline 可触发拼写文件加载。已在版本 9.2.0450 中修补此问题。(CVE-2026-45130)
Vim 是一个开源命令行文本编辑器。之前 9.2.0479,在类 Unix 系统上解压缩 .tgz 存档时,tar#Vimuntar() inruntime/autoload/tar.vim 中存在一个命令注入漏洞。
此函数使用 shellescape(tartail) 构建 :!gunzip 和 :!gzip -d 命令,无 {special} 标记,允许构建的存档文件名触发 Vim cmdline-special 扩展,并在用户环境中执行 shell 命令。此漏洞已在 9.2.0479 中修复。(CVE-2026-46483)
Vim 是一个开源命令行文本编辑器。在版本 9.2.0495 之前,将浏览过的目录路径序列化到历史文件 ~/.vim/.netrwhist 时,netrw 插件 (runtime/pack/dist/opt/netrw/autoload/netrw.vim) 中的 s:NetrwBookHistSave() 存在 Vimscript 代码注入漏洞。从文件系统派生的目录名称会在不转义其中包含的单引号的情况下插入到单引号的 Vimscript 字符串文本中,从而允许构建的目录名称突破字符串上下文,并在下次获取历史文件时通过 system() 和 :! 执行 shell 命令等任意 Vimscript。已在版本 9.2.0495 中修补此问题。
(CVE-2026-47162)
Vim 是一个开源命令行文本编辑器。在低于版本之前 9.2.0496的版本中,采用 +ruby 支持的 Vim 版本上的 cucumber 文件类型插件 (runtime/ftplugin/cucumber.vim) 中的 s:stepmatch() 中存在代码注入漏洞。从存储库的 features/*/ 或 stories/*/ 目录下的 .rb 文件读取的步骤定义模式在未充分转义的情况下嵌入到 Ruby Kernel.eval 参数中,从而允许攻击者控制的存储库中构建的模式在用户调用步进跳跃映射 ([d, ]d) 时执行任意 Ruby(并通过其执行任意 shell 命令)。已在版本 9.2.0496 中修补此问题。(CVE-2026-47167)
Vim 是一个开源命令行文本编辑器。在低于版本之前 9.2.0561,启用了 +python3 解释器的 Vim 的 python3complete.vim 中的 Python omni-completion 脚本(以及用于使用 +python 解释器的版本的旧版 pythoncomplete.vim)通过 Python 的导入机制执行当前缓冲区中找到的 import 和 from 语句。由于缓冲区的工作目录位于 sys.path 上,因此打开包含同级 Python 程序包的恶意 .py 文件并调用全能补全,会以编辑用户身份运行该程序包的顶级代码。已在版本 9.2.0561 中修补此问题。
(CVE-2026-52858)
Vim 是一个开源命令行文本编辑器。在低于版本之前 9.2.0565,当拍摄快照时,src/terminal.c 中的 update_snapshot() 函数将可见的终端屏幕复制到回滚缓冲区中。
对于每个屏幕单元格,它遍历该单元格的 chars[] 数组,没有上限,仅在遇到 NUL 终止符时停止。当单元格合法填充所有VTERM_MAX_CHARS_PER_CELL (6) 个插槽(一个基本字符加五个组合标记)时,捆绑的 libvterm 返回没有终止 NUL 的数组,因此循环会读取经过固定的六元素数组并将越界值附加到仅为六个字符保留的缓冲区。其输出呈现在 :terminal 窗口内的程序可使用短字节序列触发此错误,且无 Vim 脚本,从而导致崩溃。已在版本 9.2.0565 中修补此问题。(CVE-2026-52859)
Vim 是一个开源命令行文本编辑器。在低版本 9.2.0597之前,Vim 的 Python 全能补全使用 exec() 从当前缓冲区执行重建的函数和类定义,作为填充完成字典的一部分。Python 在定义时会评估函数默认值、参数批注和类基表达式,因此恶意缓冲区可在全能补全期间执行攻击者控制的 Python 表达式。现有的 g:pythoncomplete_allow_import 缓解措施 (GHSA-52mc-rq6p-rc7c) 未涵盖此路径,因为攻击者控制的代码并非收集的 import/from 语句。已在版本 9.2.0597 中修补此问题。(CVE-2026-52860)
Tenable 已直接从测试产品的安全公告中提取上述描述块。
请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。
解决方案
运行“dnf update vim --releasever 2023.12.20260622”或“dnf update --advisory ALAS2023-2026-1862 --releasever 2023.12.20260622”以更新系统。
插件详情
文件名: al2023_ALAS2023-2026-1862.nasl
代理: unix
支持的传感器: Agentless Assessment, Continuous Assessment, Frictionless Assessment Agent, Frictionless Assessment AWS, Nessus Agent, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus
风险信息
矢量: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C
矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
时间矢量: CVSS:3.0/E:P/RL:O/RC:C
Threat Vector: CVSS:4.0/E:P
Vector: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
漏洞信息
CPE: p-cpe:/a:amazon:linux:vim-filesystem, p-cpe:/a:amazon:linux:vim-data, p-cpe:/a:amazon:linux:vim-enhanced-debuginfo, p-cpe:/a:amazon:linux:vim-common, p-cpe:/a:amazon:linux:vim-minimal-debuginfo, p-cpe:/a:amazon:linux:xxd-debuginfo, p-cpe:/a:amazon:linux:xxd, p-cpe:/a:amazon:linux:vim-minimal, p-cpe:/a:amazon:linux:vim-enhanced, p-cpe:/a:amazon:linux:vim-default-editor, p-cpe:/a:amazon:linux:vim-debuginfo, cpe:/o:amazon:linux:2023, p-cpe:/a:amazon:linux:vim-debugsource
必需的 KB 项: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list
易利用性: Exploits are available
参考资料信息
CVE: CVE-2026-35177, CVE-2026-39881, CVE-2026-42307, CVE-2026-43961, CVE-2026-44656, CVE-2026-45130, CVE-2026-46483, CVE-2026-47162, CVE-2026-47167, CVE-2026-52858, CVE-2026-52859, CVE-2026-52860