IPBUF安全漏洞报告
English
CVE-2026-41411 CVSS 6.6 中危

CVE-2026-41411 Vim标签文件命令注入漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-41411
漏洞类型
命令注入
CVSS评分
6.6 中危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Vim

相关标签

命令注入VimRCE本地文件包含CVE-2026-41411

漏洞概述

Vim 9.2.0357之前的版本中存在一个命令注入漏洞。该漏洞源于Vim在处理标签文件时,会对文件名字段进行通配符扩展以解析环境变量。如果文件名字段包含反引号语法,Vim将通过系统shell执行嵌入的命令。攻击者可利用此漏洞,诱导用户在特定环境下执行标签跳转,从而以当前用户权限执行任意系统命令。

技术细节

该漏洞发生在Vim解析tags文件的过程中。Vim使用tags文件来索引源代码中的位置以便快速导航。在解析标签时,Vim会提取文件名字段并对其进行通配符扩展,旨在支持环境变量(如$HOME)和通配符。然而,该扩展过程调用了系统Shell,且未对输入内容进行充分的过滤。如果文件名字段包含Shell反引号(`),系统会将反引号内的内容作为命令执行。攻击者只需构造一个恶意的tags文件,将其放入项目中,诱导受害者使用Vim打开并尝试跳转标签(例如使用Ctrl-]或:tag命令),即可触发漏洞。由于Vim继承当前用户的权限,攻击者因此可以执行任意代码。

攻击链分析

STEP 1
1. 构造恶意文件
攻击者创建一个包含恶意tags文件的项目,文件名字段包含反引号包裹的系统命令(如`id`)。
STEP 2
2. 诱导受害者
攻击者将项目发送给受害者,诱导受害者使用Vim打开该项目目录。
STEP 3
3. 触发解析
受害者在Vim中尝试跳转到某个标签(例如将光标移至函数名并按Ctrl-]),Vim开始解析tags文件。
STEP 4
4. 执行命令
Vim在处理文件名字段时调用Shell进行通配符扩展,反引号内的恶意命令被系统执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Malicious tags file content (PoC) # Format: tagname<TAB>filename<TAB>ex_command # The filename field contains the backtick payload exploit `touch /tmp/vim_pwned` ./src/main.c

影响范围

Vim < 9.2.0357

防御指南

临时缓解措施
在未升级前,用户应谨慎处理不可信的tags文件。可以通过在vimrc中设置'set tags='来禁用自动标签加载,或者在使用Vim时避免使用标签跳转功能(如Ctrl-]),以防止触发漏洞。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表