Skip to main content

Vim CVE-2026-55693

| EUVDEUVD-2026-39452 MEDIUM
Out-of-bounds Write (CWE-787)
2026-06-25 GitHub_M
5.7
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
5.7 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
7.8 HIGH

Local vector because a crafted spell file must reach the filesystem; no attacker privileges needed but active user interaction (spell suggestion) is required to trigger the vulnerable code path.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
Red Hat
7.3 MEDIUM
qualitative

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
A
Scope
X

Lifecycle Timeline

3
Patch available
Jun 25, 2026 - 17:02 EUVD
Source Code Evidence Fetched
Jun 25, 2026 - 16:27 vuln.today
Analysis Generated
Jun 25, 2026 - 16:27 vuln.today

DescriptionCVE.org

Vim is an open source, command line text editor. Prior to 9.2.0653, the tree_count_words() function in src/spellfile.c fills in the word-count fields of a spell-file word trie by walking it iteratively with a depth counter. The counter is bounded only by the trie structure itself; it is never checked against the size of the fixed MAXWLEN-element stack arrays it indexes (arridx[], curi[], wordcount[]). A crafted .spl/.sug file pair, loaded when the user invokes spell suggestion, can drive the descent arbitrarily deep, so the function writes past the end of those arrays. This is a stack out-of-bounds write that corrupts the call frame and crashes the editor. This vulnerability is fixed in 9.2.0653.

AnalysisAI

Stack out-of-bounds write in Vim's spell suggestion engine allows a crafted .spl/.sug file pair to corrupt the call stack and crash the editor when spell suggestions are invoked. All Vim releases prior to 9.2.0653 are affected, with the flaw in tree_count_words() and sug_filltree() inside src/spellfile.c, where three fixed-size MAXWLEN-element stack arrays are indexed by an unbounded depth counter. No public exploit identified at time of analysis (CVSS 4.0 E:U), though the upstream fix commit includes a detailed proof-of-concept test case reproducing the out-of-bounds write.

Technical ContextAI

The vulnerability resides in two functions - tree_count_words() and sug_filltree() - within Vim's src/spellfile.c. Both functions walk a spell-file word trie iteratively using a depth counter to index three fixed-size stack arrays: arridx[], curi[], and wordcount[], each dimensioned to MAXWLEN elements. The depth counter was never bounded against MAXWLEN, meaning any trie structure driving descent beyond that limit would write past the end of all three arrays. A specially crafted .spl file can encode a self-referential BY_INDEX node in the fold-word trie: because shared references are not recursed during parsing, Vim's read-time depth cap in read_tree_node() never fires, but the iterative walk in tree_count_words() descends indefinitely. The companion .sug file is required because the vulnerable count walk only executes when spellsuggest() loads the matching suggestion file. The root cause class is CWE-787 (Out-of-bounds Write). Affected CPE is cpe:2.3:a:vim:vim:*:*:*:*:*:*:*:* covering all versions prior to 9.2.0653. The fix adds else if (depth < MAXWLEN - 1) at both vulnerable branch points, making the depth bound explicit.

RemediationAI

Upgrade Vim to version 9.2.0653 or later, confirmed by the upstream tagged release at https://github.com/vim/vim/releases/tag/v9.2.0653 and fix commit a80874d9b84a01040e3d1aef2d4a59e1934dafb7 (https://github.com/vim/vim/commit/a80874d9b84a01040e3d1aef2d4a59e1934dafb7). Distribution maintainers should check their package repositories for backported patches. The GitHub Security Advisory is at https://github.com/vim/vim/security/advisories/GHSA-wgh4-64f7-q3jq. Where immediate patching is not feasible, disable spell checking by adding set nospell to ~/.vimrc or the system-wide vimrc; this prevents the .sug file load path entirely, eliminating the attack surface at the cost of losing spell-check functionality. Alternatively, audit and remove any untrusted or unrecognized .spl/.sug files from all directories in Vim's runtimepath (typically ~/.vim/spell/ and /usr/share/vim/vimXX/spell/), restricting spell files to those distributed by the OS vendor.

More in Vim

View all
CVE-2022-3520 CRITICAL POC
9.8 Dec 02

Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.0765. Rated critical severity (CVSS 9.8), this vuln

CVE-2022-0729 HIGH POC
8.8 Feb 23

Use of Out-of-range Pointer Offset in GitHub repository vim/vim prior to 8.2.4440. Rated high severity (CVSS 8.8), this

CVE-2026-34714 HIGH POC
8.6 Mar 30

Code execution vulnerability in Vim before 9.2.0272 allows attackers to gain immediate arbitrary command execution upon

CVE-2019-12735 HIGH POC
8.6 Jun 05

getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via th

CVE-2021-3968 HIGH POC
8.0 Nov 19

vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 8.0), this vulnerability is remotely exploita

CVE-2023-4735 HIGH POC
7.8 Sep 02

Out-of-bounds Write in GitHub repository vim/vim prior to 9.0.1847. Rated high severity (CVSS 7.8), this vulnerability i

CVE-2023-4781 HIGH POC
7.8 Sep 05

Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.1873. Rated high severity (CVSS 7.8), this vulnerab

CVE-2023-4734 HIGH POC
7.8 Sep 02

Integer Overflow or Wraparound in GitHub repository vim/vim prior to 9.0.1846. Rated high severity (CVSS 7.8), this vuln

CVE-2023-4733 HIGH POC
7.8 Sep 04

Use After Free in GitHub repository vim/vim prior to 9.0.1840. Rated high severity (CVSS 7.8), this vulnerability is no

CVE-2023-4750 HIGH POC
7.8 Sep 04

Use After Free in GitHub repository vim/vim prior to 9.0.1857. Rated high severity (CVSS 7.8), this vulnerability is no

CVE-2023-4736 HIGH POC
7.8 Sep 02

Untrusted Search Path in GitHub repository vim/vim prior to 9.0.1833. Rated high severity (CVSS 7.8), this vulnerability

CVE-2023-2610 HIGH POC
7.8 May 09

Integer Overflow or Wraparound in GitHub repository vim/vim prior to 9.0.1532. Rated high severity (CVSS 7.8), this vuln

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SLES15-SP5-CHOST-BYOS-SAP-CCloud Affected
SLES15-SP6-CHOST-BYOS Affected
SLES15-SP6-CHOST-BYOS-Aliyun Affected
SLES15-SP6-CHOST-BYOS-Azure Affected
SLES15-SP6-CHOST-BYOS-EC2 Affected

Share

CVE-2026-55693 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy