Cloudanix VulnDB

CVE-2026-41411

Medium · 6.6

CVSS

6.6

EPSS

0.8%

Published

Apr 24, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A malicious project file can make Vim run commands on a user’s computer when they use code navigation features.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Moderate
Impact
Remote Code Execution
Component
Application
Class
Command Injection
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

This vulnerability allows command injection during Vim tag file processing. When a user resolves a tag, Vim reads the corresponding entry from a tags file and performs wildcard/environment expansion on the filename field. In vulnerable versions prior to Vim 9.2.0357, filename values containing shell backtick syntax can cause Vim to invoke the system shell and execute the embedded command with the privileges of the user running Vim. The flaw requires user interaction, such as opening or navigating code that uses a malicious tags file, but does not require prior authentication to Vim itself.

Why it matters to the business

An attacker who can convince a developer, administrator, or operator to use a malicious project directory or tags file could run commands as that user, potentially stealing source code, modifying files, planting persistence, or pivoting using that user's access. The risk is especially relevant for engineering workstations, build systems, administrative jump hosts, and environments where Vim is used to inspect untrusted code. This issue is not currently listed in CISA KEV, has low EPSS activity, and has no reported exploit maturity in the provided data, but it is still operationally important because editor-based execution can bypass normal expectations that viewing source files is safe.

How an attack unfolds

An attacker prepares a repository, archive, or directory containing a crafted Vim tags file. The malicious tags entry places shell backtick syntax in the filename field, such as a value that causes the shell to execute an embedded command during expansion. The attacker then persuades a victim to open the project in Vim and use tag navigation, or otherwise causes Vim to resolve a tag from the malicious tags file. On vulnerable Vim versions, the tag filename is expanded using shell-aware behavior, causing the embedded command to run under the victim user's account. Depending on the command payload and the user's privileges, the attacker may read local files, modify source code, install a second-stage payload, create network callbacks, or abuse available credentials and SSH keys.

How to fix it

Upgrade Vim to version 9.2.0357 or later once available from the operating system, package manager, or upstream distribution. Where exact package versions vary by platform, use the vendor-provided fixed package for Vim that includes the patch for this tag file command injection issue. Until patched, avoid opening untrusted projects or tags files in Vim, disable or avoid tag navigation for untrusted source trees, remove untrusted tags files before inspection, and regenerate tags files locally from trusted source using trusted tooling. On managed endpoints, prioritize patching developer workstations, build hosts, CI workers, administrative systems, and servers where operators commonly use Vim. Consider restricting outbound network access and script execution from developer workstations to reduce payload impact.

How to confirm the fix worked

Confirm the installed Vim version is 9.2.0357 or later, or verify that the operating system vendor package changelog includes the fix for this issue. On Unix-like systems, check versions with commands such as `vim --version` and package manager queries such as `dpkg -l vim`, `rpm -q vim`, `dnf info vim`, `yum info vim`, `pacman -Qi vim`, or equivalent platform tooling. Search source directories and shared repositories for untrusted or recently modified `tags` files, especially those containing backtick characters in tag filename fields. If a controlled test is appropriate, use a non-production sandbox to verify that resolving a crafted tag no longer causes shell command execution. Also confirm endpoint security telemetry shows no suspicious child shell processes spawned from Vim after patching.

Typical attack path

  1. Attacker creates or modifies a Vim tags file with a crafted filename field containing shell backtick command syntax.
  2. Attacker delivers the malicious project, source tree, archive, or tags file to a target user or places it where the user is likely to work with it.
  3. Target user opens the content in a vulnerable Vim version prior to 9.2.0357.
  4. Target user performs tag resolution or tag navigation that causes Vim to process the malicious tags entry.
  5. Vim expands the crafted filename field and invokes the system shell.
  6. The embedded command executes with the privileges and environment of the Vim user.
  7. Attacker uses the command execution result for data theft, file tampering, persistence, or follow-on access.

How to detect it

To determine whether this was already exploited, review endpoint and EDR process telemetry for instances where Vim launched a shell or command interpreter, especially shortly after opening source directories or using tag navigation. Key parent processes include `vim`, `view`, `rvim`, `gvim`, and distribution-specific Vim binaries; suspicious child processes include `/bin/sh`, `/bin/bash`, `/bin/zsh`, `dash`, `curl`, `wget`, `python`, `perl`, `ruby`, `nc`, `ncat`, `socat`, `ssh`, and PowerShell or `cmd.exe` on platforms where applicable. Search file systems, repositories, source checkouts, temporary extraction directories, and recent downloads for files named `tags` containing backtick command-substitution syntax in tag entries. Review shell history, audit logs, Sysmon or equivalent process creation logs, EDR command-line telemetry, file modification events, and network connection logs for activity originating from Vim-spawned processes. Look for suspicious outbound connections, credential access, modifications to shell startup files, creation of persistence files, unexpected changes in project directories, and newly created executables or scripts around the time a vulnerable Vim session processed an untrusted project. Because the provided intelligence indicates no known KEV listing, ransomware association, or mature public exploit, broad internet-scale exploitation is less likely, but targeted social engineering against developers remains plausible.

  • parent_process=vim child_process=/bin/sh
  • parent_process=vim child_process=/bin/bash
  • parent_process=vim child_process=/bin/zsh
  • parent_process=vim child_process=dash
  • parent_process=vim child_process=curl
  • parent_process=vim child_process=wget
  • parent_process=vim child_process=python
  • parent_process=vim child_process=python3
  • parent_process=vim child_process=perl
  • parent_process=vim child_process=ruby
  • parent_process=vim child_process=nc
  • parent_process=vim child_process=ncat
  • parent_process=vim child_process=socat
  • parent_process=vim child_process=ssh
  • parent_process=gvim child_process=/bin/sh
  • parent_process=view child_process=/bin/sh
  • parent_process=rvim child_process=/bin/sh
  • filename:tags content:`
  • tags file contains backtick command substitution
  • `curl
  • `wget
  • `/bin/sh
  • `bash
  • `python
  • `python3
  • `perl
  • `ruby
  • `nc
  • `ncat
  • `socat

What your security team should do

  • Inventory Vim installations across developer endpoints, servers, CI/build systems, containers, and administrator workstations.
  • Patch or upgrade Vim to 9.2.0357 or later, prioritizing systems where users handle third-party code or where Vim runs under privileged accounts.
  • Search repositories, downloaded archives, and workspaces for suspicious `tags` files containing shell metacharacters, especially backticks.
  • Monitor endpoint telemetry for shell or scripting interpreters launched as child processes of `vim`, `view`, `rvim`, `gvim`, or related editor binaries.
  • Warn developers and administrators not to trust committed or externally supplied Vim tags files; recommend regenerating tags locally from trusted source.
  • Add pre-commit or repository scanning controls to flag suspicious tags file entries containing command-substitution syntax.
  • Treat any confirmed execution as user-level compromise: collect forensic artifacts, rotate exposed credentials, and review SSH keys, tokens, shell history, and recently modified files.

The record

Vim is an open source, command line text editor. Prior to 9.2.0357, A command injection vulnerability exists in Vim's tag file processing. When resolving a tag, the filename field from the tags file is passed through wildcard expansion to resolve environment variables and wildcards. If the filename field contains backtick syntax (e.g., `command`), Vim executes the embedded command via the system shell with the full privileges of the running user.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities