CVE-2026-44656Vim是一个广泛使用的开源命令行文本编辑器。在9.2.0435版本之前,Vim的:find命令行补全功能中存在操作系统命令注入漏洞。由于path选项缺少P_SECURE标志,攻击者可以通过modeline设置包含反引号包裹的shell命令的path选项。当用户打开受控文件并触发:find补全时,这些恶意命令将被执行,从而导致任意代码执行。该问题已在9.2.0435版本中修复。
该漏洞的核心在于Vim对:path选项的处理不当。通常情况下,涉及执行外部命令的选项应当设置P_SECURE标志,以防止其通过modeline被修改。然而,Vim的path选项并未设置此安全标志。攻击者可以构造一个恶意文件,在文件首行或尾部的modeline中包含类似`set path=\`command\``的指令。当受害者使用Vim打开该文件时,modeline会被解析,从而将path选项设置为包含恶意shell命令的字符串。随后,如果用户在Vim中尝试使用:find命令进行文件名查找或补全(例如输入`:find file <Tab>`),Vim会展开path选项中的内容以搜索路径,在此过程中,系统会执行反引号内的shell命令。由于攻击向量为本地(AV:L)且需要用户交互(UI:R),攻击者需诱导用户打开特定文件并进行特定操作才能利用该漏洞。