Description
Vim is an open source, command line text editor. Prior to version 9.2.0450, a heap buffer overflow exists in read_compound() in src/spellfile.c when loading a crafted spell file (.spl) with UTF-8 encoding active. An attacker-controlled length field in the spell file's compound section overflows a 32-bit signed integer multiplication, causing a small buffer to be allocated for a write loop that runs many iterations, overflowing the heap. Because the 'spelllang' option can be set from a modeline, a text file modeline can trigger spell file loading if a malicious .spl file has been planted on the runtimepath. This issue has been patched in version 9.2.0450.
Problem types
CWE-122: Heap-based Buffer Overflow
CWE-190: Integer Overflow or Wraparound
Product status
References
github.com/vim/vim/security/advisories/GHSA-q4jv-r9gj-6cwv
github.com/...ommit/92993329178cb1f72d700fff45ca86e1c2d369f8
github.com/vim/vim/releases/tag/v9.2.0450