Vim is an open source, command line text editor. Prior to 9.2.0725, the single-byte branch of spell_soundfold_sal() in src/spell.c translates a word through a spell file's SAL sound-folding rules into a caller-owned result buffer, but its result writes are guarded with reslen < MAXWLEN, allowing reslen to reach MAXWLEN before res[reslen] = NUL writes one byte past the end of the MAXWLEN-element stack buffer. A boundary-length word passed to soundfold(), or reached via sound-based spell suggestion while a SAL-based spell language is active under a non-multibyte 8-bit encoding, can corrupt the eval_soundfold() stack frame and crash the editor. This issue is fixed in version 9.2.0725.
https://github.com/vim/vim/security/advisories/GHSA-m3hf-xcm3-xhm2
https://github.com/vim/vim/commit/d22ff1c955ff87e8273210eae125aab0e85b6c30
Published: 2026-07-09
Updated: 2026-07-09
Base Score: 5.8
Vector: CVSS2#AV:N/AC:M/Au:N/C:N/I:P/A:P
Severity: Medium
Base Score: 7.1
Vector: CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
Severity: High
Base Score: 5.6
Vector: CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Severity: Medium