Skip to main content

Vim CVE-2026-57455

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

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver crafted SOFO spell file to local user
  2. Delivery
    User loads file in Vim with spell checking enabled
  3. Exploit
    Trigger soundfold() on word exceeding 254 bytes
  4. Execution
    Unguarded ri index writes past MAXWLEN stack buffer
  5. Persist
    Call frame overwritten
  6. Impact
    Editor crash or controlled stack smash

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires all of the following local conditions simultaneously: Vim must be running on the local system (AV:L - no network vector exists), spell checking must be active (set spell), a SOFO-based spell language file must be loaded via set spelllang pointing to a dictionary that uses SOFOFROM/SOFOTO directives, and the user must actively trigger a soundfold operation - either via Vim's soundfold() function or via sound-based spell suggestion (z=) - on a word exceeding MAXWLEN (254) bytes. The UI:A metric confirms active user interaction is mandatory. Exploitation is further limited by AC:H: the non-default SOFO spell file must be present and loaded, a condition uncommon in standard Vim deployments. Vim instances compiled without spell-check support, deployments where spell checking is never enabled, and deployments using only non-SOFO spell files are not affected.

Impact

The CVSS 4.0 base score of 4.0 (Medium) accurately reflects the constrained exploitation environment: AV:L restricts the attack to local access, AC:H demands a specific SOFO spell-file configuration, and UI:A requires active user interaction to trigger the soundfold path. Despite the impact metrics being uniformly high (VC:H/VI:H/VA:H), reflecting the theoretical severity of a stack smash, the combination of non-network attack vector and high complexity significantly limits real-world risk. No EPSS score is available in the provided data, so exploitation probability cannot be quantified probabilistically; however, E:U in the CVSS 4.0 vector confirms no exploit maturity at time of publication. KEV status is not confirmed, indicating no observed active exploitation. The primary realistic risk is crash-as-denial-of-service for affected users loading SOFO spell files; controlled code execution would require advanced exploitation skill and a very specific environment. This is not an emergency-response priority - patch on the next maintenance cycle is appropriate for most organizations.

Exploit ScenarioDerived

An attacker crafts a malicious SOFO-based spell file containing SOFOFROM/SOFOTO entries and social-engineers a local user into loading it in Vim with spell checking enabled. When the victim invokes a sound-based spell suggestion (e.g., z=) on a word longer than 254 bytes - or when the soundfold() function is triggered programmatically - the unguarded copy loop in spell_soundfold_sofo() writes past the MAXWLEN stack buffer, corrupting the call frame and crashing Vim. No public proof-of-concept exists, and developing the crash into controlled code execution would require additional exploitation sophistication targeting the specific stack layout.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 25, 2026

Stack out-of-bounds write in Vim's spell_soundfold_sofo() function (src/spell.c) allows local exploitation when a SOFO-based spell language is active and the soundfold path is triggered with a word exceeding MAXWLEN (254) bytes, corrupting the call frame and crashing the editor with theoretical code execution potential. All Vim releases prior to 9.2.0698 carrying the single-byte SOFO branch are affected; the vendor has released a confirmed fix at v9.2.0698. No public exploit code exists and no CISA KEV listing is present; the CVSS 4.0 E:U supplemental metric confirms exploitation remains unproven at time of analysis.

RemediationAI

Upgrade Vim to version 9.2.0698 or later; this is the vendor-confirmed patched release documented at https://github.com/vim/vim/releases/tag/v9.2.0698 and in security advisory GHSA-q8mh-6qm3-25g4 (https://github.com/vim/vim/security/advisories/GHSA-q8mh-6qm3-25g4). If an immediate upgrade is not feasible, disable spell checking entirely in Vim by removing set spell and set spelllang directives from all vimrc configurations; this eliminates the vulnerable code path at the cost of losing inline spell correction. Alternatively, avoid loading any SOFO-based spell files - standard English and most major language spell files distributed with Vim use SONA/SOFO alternatives, so verify which dictionaries in use contain SOFOFROM/SOFOTO directives. Automated or server-side Vim deployments that never enable spell checking are not affected and require no urgent action.

Affected VersionsENISA

vim < 9.2.0698

Affected Packages

euvd vim fix: 9.2.0698

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in Vim's built-in spell-checking subsystem, specifically the spell_soundfold_sofo() function in src/spell.c. SOFO (sound-fold) is a spell-file directive used by certain locale-specific dictionaries to map input characters to phonetic equivalents for fuzzy spell suggestion. The single-byte branch of this function copies characters from an input word through a byte-map into a caller-provided result buffer declared as a MAXWLEN (254) byte array on the stack. Prior to the fix, the for-loop (for (s = inword; (c = *s) != NUL; ++s)) advanced the output index ri without any upper-bound guard, writing one byte per input byte until the NUL terminator was reached. Any word longer than 254 bytes therefore overwrites the stack beyond the buffer boundary, constituting CWE-787 (Out-of-Bounds Write). The single-line patch adds && ri < MAXWLEN - 1 to the loop condition, bounding output. The affected CPE is cpe:2.3:a:vim:vim:*:*:*:*:*:*:*:* and the fix is anchored to commit 497f931f85339d175d7f69588dd249e8ccfed41b.

Know when Vim gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 4.0 MEDIUM
CVSS:4.0/AV:L/AC:H/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U
vuln.today AI 7.0 HIGH

Local-only vector (AV:L), high complexity for required SOFO configuration (AC:H), no privileges needed (PR:N), active user interaction required (UI:R); CIA all High reflecting stack smash potential per CVSS 4.0 vendor assessment.

3.1 AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:H/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 4.7 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Jun 25, 2026 - 17:02 EUVD

DescriptionCVE.org

Vim is an open source, command line text editor. Prior to 9.2.0698, the single-byte branch of spell_soundfold_sofo() in src/spell.c translates a word through a spell file's SOFO (sound-folding) byte map into a caller-owned result buffer. Its copy loop advances the output index ri with no upper bound and terminates only on the input NUL, writing one byte per input byte into the MAXWLEN-element stack buffer the caller provides. A word longer than MAXWLEN, passed to soundfold() (or reached via sound-based spell suggestion) while a SOFO-based spell language is active, therefore writes past the end of that buffer. This is a stack out-of-bounds write that corrupts the call frame and crashes the editor. This vulnerability is fixed in 9.2.0698.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
High
Vim ships by default on most Unix and Linux distributions
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
High
Technical Impact
Total

Priority Score

20
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +20
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

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-2022-1616 HIGH POC
7.8 May 07

Use after free in append_command in GitHub repository vim/vim prior to 8.2.4895. Rated high severity (CVSS 7.8), this vu

CVE-2022-1619 HIGH POC
7.8 May 08

Heap-based Buffer Overflow in function cmdline_erase_chars in GitHub repository vim/vim prior to 8.2.4899. Rated high se

CVE-2021-4136 HIGH POC
7.8 Dec 19

vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 7.8), this vulnerability is no authentication

CVE-2021-3973 HIGH POC
7.8 Nov 19

vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 7.8), this vulnerability is no authentication

CVE-2021-3927 HIGH POC
7.8 Nov 05

vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 7.8), this vulnerability is no authentication

CVE-2022-2125 HIGH POC
7.8 Jun 19

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

CVE-2022-2126 HIGH POC
7.8 Jun 19

Out-of-bounds Read in GitHub repository vim/vim prior to 8.2. Rated high severity (CVSS 7.8), this vulnerability is no a

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

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