CVE-2026-34982Vim文本编辑器在9.2.0276版本之前存在严重的安全漏洞。由于modeline沙箱机制存在绕过缺陷,攻击者可利用`complete`、`guitabtooltip`和`printheader`选项缺少`P_MLE`标志的问题,以及`mapset()`函数缺少安全检查的漏洞,构造特制的文件。当用户使用Vim打开此类恶意文件时,可导致任意操作系统命令执行,从而完全控制系统。
该漏洞的核心在于Vim对modeline表达式的安全校验不严。在受影响版本中,`complete`、`guitabtooltip`和`printheader`这三个选项在modeline上下文中未设置`P_MLE`标志,这意味着即使启用了沙箱模式,通过这些选项传入的恶意表达式仍会被执行。此外,`mapset()`函数在实现时未调用`check_secure()`进行权限检查,允许在沙箱环境中被滥用。攻击者通过在文件中植入形如`vim: set option=expr:malicious_function()`的modeline,诱导用户打开文件后,Vim解析器会执行该表达式,从而绕过沙箱限制并执行任意系统命令。