5465 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / README_CN.md MD
# CVE-2026-44656 - Vim Modeline path 选项命令注入漏洞

[English](./README.md)|中文

本仓库提供 **CVE-2026-44656** 的漏洞复现环境。该漏洞源于 Vim 在处理 modeline 中 `path` 选项的反引号展开表达式时存在缺陷,攻击者可利用 `:find` 命令的 Tab 补全功能触发任意命令执行。

## 漏洞概述

- **CVE 编号**: CVE-2026-44656
- **影响范围**: Vim(modeline + `path` 选项的反引号展开)
- **攻击向量**: 构造包含恶意 modeline 的文件,将 `path` 设置为包含反引号表达式。当用户通过 `:find` + Tab 触发路径补全时,表达式被求值,执行任意命令。

## 复现步骤

```bash
# 1. 构建 Docker 镜像
docker build -t cve_2026_44656_vim .

# 2. 运行容器
docker run -it cve_2026_44656_vim

# 3. 在容器内打开 PoC 文件
vim poc.txt

# 4. 触发漏洞
#    输入: :find
#    然后按 Tab 键触发路径补全

# 5. 退出 Vim
#    按 ESC,然后输入 :q 回车

# 6. 验证漏洞是否成功
ls sakana.pwn    # ./eval.sh后台执行创建文件
```

## 文件说明

- `Dockerfile` - 基于 Debian 构建包含漏洞版本 Vim 的容器
- `poc.txt` - 包含恶意 modeline 的 PoC 文件
- `eval.sh` - 攻击载荷脚本(创建 `sakana.pwn` 作为验证)
- `vimrc` - 启用 modeline 的 Vim 配置文件
- `vim/` - 存在漏洞的 Vim 源代码

## 缓解措施

在 `vimrc` 中添加 `set nomodeline` 禁用 modeline 处理,或避免使用 modeline 打开不可信文件。