Vim is an open source, command line text editor. Prior to 9.2.0653, the treecountwords() 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.
{
"cwe_ids": [
"CWE-787"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55693.json"
}{
"source": [
"AFFECTED_FIELD",
"CPE_RANGE",
"REFERENCES"
],
"cpe": "cpe:2.3:a:vim:vim:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "9.2.0653"
}
]
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55693.json"
[
{
"source": "https://github.com/vim/vim/commit/a80874d9b84a01040e3d1aef2d4a59e1934dafb7",
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "123204830386781954546134637996753320784",
"length": 717.0
},
"id": "CVE-2026-55693-6ca8e02e",
"target": {
"function": "tree_count_words",
"file": "src/spellfile.c"
},
"deprecated": false
},
{
"source": "https://github.com/vim/vim/commit/a80874d9b84a01040e3d1aef2d4a59e1934dafb7",
"signature_type": "Line",
"signature_version": "v1",
"digest": {
"line_hashes": [
"121841471947771335970330427659756218289",
"333074141710635353878506192750459148821",
"308924258992231290331072024797707890402",
"148048222134773652873395929134373616906",
"121841471947771335970330427659756218289",
"333074141710635353878506192750459148821",
"282891274179224871924919723449456540006",
"228784680890284648392198775329625122979"
],
"threshold": 0.9
},
"id": "CVE-2026-55693-7f4f1adc",
"target": {
"file": "src/spellfile.c"
},
"deprecated": false
},
{
"source": "https://github.com/vim/vim/commit/a80874d9b84a01040e3d1aef2d4a59e1934dafb7",
"signature_type": "Function",
"signature_version": "v1",
"digest": {
"function_hash": "11596173478873292582722779375042111840",
"length": 1327.0
},
"id": "CVE-2026-55693-b1cb1d80",
"target": {
"function": "sug_filltree",
"file": "src/spellfile.c"
},
"deprecated": false
},
{
"source": "https://github.com/vim/vim/commit/a80874d9b84a01040e3d1aef2d4a59e1934dafb7",
"signature_type": "Line",
"signature_version": "v1",
"target": {
"file": "src/version.c"
},
"digest": {
"line_hashes": [
"146200493773228420153804765641940418619",
"111756353423401833182089215223542460140",
"104219504997495332268024911423378632349",
"5713549553462746597027758170938129160"
],
"threshold": 0.9
},
"id": "CVE-2026-55693-f073217e",
"deprecated": false
}
]
"2026-07-24T08:01:13Z"