CVE-2026-28419: 
Vim vulnerability analysis and mitigation

Overview

CVE-2026-28419 is a heap-based buffer underflow vulnerability in Vim's Emacs-style tags file parsing logic, affecting all versions prior to 9.2.0075. When processing a malformed tags file where a 0x7f delimiter appears at the very start of a line, Vim attempts to read memory immediately preceding the heap-allocated buffer, resulting in a 1-byte out-of-bounds read. The vulnerability was disclosed on February 27, 2026, by researchers ehdgks0627 and un3xploitable, and fixed in Vim 9.2.0075 released the same day. It carries a CVSS v3.1 base score of 5.3 (Moderate) per the GitHub Security Advisory, though some sources score it as 6.6 (Medium) (GitHub Advisory, Openwall).

Technical details

The vulnerability is rooted in the emacs_tags_parse_line() function in src/tag.c (CWE-124: Buffer Underwrite / CWE-125: Out-of-bounds Read). When parsing Emacs-style tags in the "second format" (where the tag name is not explicitly provided), the code scans backward from the 0x7f delimiter to isolate the tag name. If p_7f == lbuf (i.e., the delimiter is at the very beginning of the line), the pointer arithmetic p = p_7f - 1 produces a pointer that precedes the start of the heap-allocated buffer; the code then dereferences this pointer in a vim_iswordc() check before performing any bounds verification, triggering the out-of-bounds read. The fix, introduced in commit 9b7dfa2, adds a guard check (if (p_7f == lbuf) goto etag_fail;) before the backward scan (GitHub Commit, GitHub Advisory). A proof-of-concept crash artifact was provided by the reporters as part of responsible disclosure (Openwall).

Impact

Successful exploitation results in a 1-byte heap out-of-bounds read, which can cause Vim to crash (Denial of Service). There is also a low-impact risk of limited memory disclosure (confidentiality) and minor integrity impact, though the primary consequence is application instability. Because the underflow is read-only and limited to a single byte, the risk of arbitrary code execution is considered low; the vulnerability does not enable lateral movement or significant data exfiltration (GitHub Advisory, Openwall).

Exploitability

No public proof-of-concept exploit code is currently available beyond the crash artifact shared during responsible disclosure, and there is no evidence of in-the-wild exploitation (GitHub Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.004% (0.000040), reflecting a very low probability of exploitation in the near term. Exploitation requires local access and user interaction — specifically, a victim must perform a tag lookup (:tag) against a crafted malicious Emacs tags file (Openwall).

Exploitation steps

  1. Craft a malicious Emacs tags file: Create a tags file where a 0x7f byte delimiter appears at the very beginning of a line (e.g., a line starting with \x7f followed by tag metadata), which triggers the second-format parsing path in emacs_tags_parse_line().
  2. Deliver the file to the target: Social-engineer the victim into placing the malicious tags file in a project directory, or supply it via a shared repository, network share, or download.
  3. Configure Vim to use the malicious tags file: The file must be referenced by Vim's tags option (e.g., :set tags=Xtags or by placing it as the default tags file in the working directory).
  4. Trigger tag lookup: Induce the victim to execute a tag lookup command such as :tag a in Vim, which causes emacs_tags_parse_line() to parse the malformed file and perform the out-of-bounds read.
  5. Achieve Denial of Service: The 1-byte heap buffer underflow causes Vim to crash, resulting in a DoS condition for the user's session (GitHub Advisory, GitHub Commit).

Indicators of compromise

  • File System: Presence of unexpected or externally sourced tags files (e.g., named tags, TAGS, or custom names) in project directories, particularly those containing binary content or lines beginning with the 0x7f byte.
  • Logs: Vim crash reports or core dumps associated with tag lookup operations; error messages referencing E431 (no tags file) or segmentation faults in Vim process logs.
  • Process: Unexpected termination of Vim processes immediately following :tag or Ctrl-] commands, especially when working with unfamiliar or externally provided codebases.

Mitigation and workarounds

Upgrade Vim to version 9.2.0075 or later, which includes the fix introduced in commit 9b7dfa2 (GitHub Release). Downstream distributions including Ubuntu (USN-8101-1), Fedora, Mageia, and Amazon Linux 2023 have released updated packages incorporating this fix. As a workaround, avoid opening or performing tag lookups against tags files from untrusted or external sources, and consider validating tags files for unexpected binary content (particularly 0x7f bytes at line starts) before use (Openwall).

Community reactions

The vulnerability was responsibly disclosed by Christian Brabandt (Vim maintainer) to the oss-security mailing list on February 27, 2026, with credit to researchers ehdgks0627 and un3xploitable for identifying the issue and providing a proof-of-concept (Openwall). Microsoft acknowledged the vulnerability through its Security Response Center advisory. Multiple Linux distributions (Ubuntu, Fedora, Mageia, Amazon Linux) issued security advisories and updated packages in the weeks following disclosure, reflecting standard patch propagation for a moderate-severity editor vulnerability.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

vim

Affected

sid

vim: 2:9.2.0119-1

Fixed

trixie

vim

Affected

RHEL / CentOS

Affected

OpenShift

openshift/ose-rhel-coreos-8

Affected

RHEL 8

vim.src

Affected

RHEL 9

vim.src

Affected

RHEL 10

vim.src

Affected

Alpine

Fixed

edge

vim: 9.2.0078-r0

Fixed

v3.23

vim: 9.2.0078-r0

Fixed

Source: This report was generated using AI

Related Vim vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-73078HIGH8.6
  • Vim logoVim
  • vim-X11
NoYesAug 11, 2026
CVE-2026-73077HIGH8.4
  • Vim logoVim
  • vim-enhanced-debuginfo
NoYesAug 11, 2026
CVE-2026-43961HIGH7.8
  • Vim logoVim
  • vim-debugsource
NoYesAug 19, 2026
CVE-2026-73073HIGH7.1
  • Vim logoVim
  • vim-common-debuginfo
NoYesAug 18, 2026
CVE-2026-19617MEDIUM5.5
  • Vim logoVim
  • lvm2-libs
NoYesAug 14, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management