vim: Fix of 5 CVEs
- CVE-2022-2125: fix out-of-bounds read in get_lisp_indent(); break out of the inner loop on NUL byte (indent.c, upstream patch 8.2.5122) - CVE-2021-3974: fix use-after-free in nfa_regmatch() when a substitute callback frees the regline during a mark comparison; save col and re-fetch rex.line via reg_getline() after getmark_buf() (regexp.c + regexp_nfa.c, upstream patch 8.2.3612) - CVE-2022-2206: fix OOB read after terminal resize lowers Rows below cmdline_row / msg_row; clamp both to Rows - 1 in check_shellsize() (term.c, upstream patch 8.2.5160) - CVE-2022-2946: fix use-after-free in do_tag() when 'tagfunc' deletes the buffer; make a vim_strsave copy of the tagstack tagname before calling user code (tag.c, upstream patch 9.0.0246) - CVE-2022-2286: fix heap-buffer-overflow in the Ctrl-E completion-stop path when the completion leader shrinks below the original text; bounds-check compl_len against replacement string length before ins_bytes_len() (insexpand.c, upstream patch 9.0.0020)
- Products
- vim-X11, vim-common, vim-enhanced, vim-filesystem, vim-minimal
- Affected versions
- Not specified
- Fixed versions
- 2:8.2.2637-22.el9_6.1.tuxcare.els22
- CVEs
- CVE-2021-3974, CVE-2022-2125, CVE-2022-2206, CVE-2022-2286, CVE-2022-2946
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 31 Oct 2026, 13:51 UTC · Revision 1
Source evidence
- CVE-2022-2125: fix out-of-bounds read in get_lisp_indent(); break out of the inner loop on NUL byte (indent.c, upstream patch 8.2.5122) - CVE-2021-3974: fix use-after-free in nfa_regmatch() when a substitute callback frees the regline during a mark comparison; save col and re-fetch rex.line via reg_getline() after getmark_buf() (regexp.c + regexp_nfa.c, upstream patch 8.2.3612) - CVE-2022-2206: fix OOB read after terminal resize lowers Rows below cmdline_row / msg_row; clamp both to Rows - 1 in check_shellsize() (term.c, upstream patch 8.2.5160) - CVE-2022-2946: fix use-after-free in do_tag() when 'tagfunc' deletes the buffer; make a vim_strsave copy of the tagstack tagname before calling user code (tag.c, upstream patch 9.0.0246) - CVE-2022-2286: fix heap-buffer-overflow in the Ctrl-E completion-stop path when the completion leader shrinks below the original text; bounds-check compl_len against replacement string length before ins_bytes_len() (insexpand.c, upstream patch 9.0.0020)
osv:CLSA-2026-1778008248
vim-X11
Fixed versions: 2:8.2.2637-22.el9_6.1.tuxcare.els22
vim-common
Fixed versions: 2:8.2.2637-22.el9_6.1.tuxcare.els22
vim-enhanced
Fixed versions: 2:8.2.2637-22.el9_6.1.tuxcare.els22
vim-filesystem
Fixed versions: 2:8.2.2637-22.el9_6.1.tuxcare.els22
vim-minimal
Fixed versions: 2:8.2.2637-22.el9_6.1.tuxcare.els22
Complete source record
{
"id": "84a137c21f3c436b647808ebf907fd7ba6fcef68930ac2b5d60965a40c2c6ab3",
"url": "https://osv.dev/vulnerability/CLSA-2026-1778008248",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "vim: Fix of 5 CVEs",
"summary": "- CVE-2022-2125: fix out-of-bounds read in get_lisp_indent(); break out of the inner loop on NUL byte (indent.c, upstream patch 8.2.5122) - CVE-2021-3974: fix use-after-free in nfa_regmatch() when a substitute callback frees the regline during a mark comparison; save col and re-fetch rex.line via reg_getline() after getmark_buf() (regexp.c + regexp_nfa.c, upstream patch 8.2.3612) - CVE-2022-2206: fix OOB read after terminal resize lowers Rows below cmdline_row / msg_row; clamp both to Rows - 1 in check_shellsize() (term.c, upstream patch 8.2.5160) - CVE-2022-2946: fix use-after-free in do_tag() when 'tagfunc' deletes the buffer; make a vim_strsave copy of the tagstack tagname before calling user code (tag.c, upstream patch 9.0.0246) - CVE-2022-2286: fix heap-buffer-overflow in the Ctrl-E completion-stop path when the completion leader shrinks below the original text; bounds-check compl_len against replacement string length before ins_bytes_len() (insexpand.c, upstream patch 9.0.0020)",
"evidence": "osv:CLSA-2026-1778008248",
"products": [
{
"name": {
"value": "vim-X11",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2:8.2.2637-22.el9_6.1.tuxcare.els22",
"evidence": "/affected/0/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "vim-common",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2:8.2.2637-22.el9_6.1.tuxcare.els22",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "vim-enhanced",
"evidence": "/affected/2/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2:8.2.2637-22.el9_6.1.tuxcare.els22",
"evidence": "/affected/2/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "vim-filesystem",
"evidence": "/affected/3/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2:8.2.2637-22.el9_6.1.tuxcare.els22",
"evidence": "/affected/3/ranges"
}
],
"affected_versions": []
},
{
"name": {
"value": "vim-minimal",
"evidence": "/affected/4/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "2:8.2.2637-22.el9_6.1.tuxcare.els22",
"evidence": "/affected/4/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CLSA-2026-1778008248",
"aliases": [
"CLSA-2026-1778008248"
],
"affected": [
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2:8.2.2637-22.el9_6.1.tuxcare.els22"
}
]
}
],
"package": {
"name": "vim-X11",
"purl": "pkg:rpm/tuxcare/vim-X11?distro=almalinux-9.6",
"ecosystem": "TuxCare:AlmaLinux:9.6"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.6esu/CLSA-2026-1778008248.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2:8.2.2637-22.el9_6.1.tuxcare.els22"
}
]
}
],
"package": {
"name": "vim-common",
"purl": "pkg:rpm/tuxcare/vim-common?distro=almalinux-9.6",
"ecosystem": "TuxCare:AlmaLinux:9.6"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.6esu/CLSA-2026-1778008248.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2:8.2.2637-22.el9_6.1.tuxcare.els22"
}
]
}
],
"package": {
"name": "vim-enhanced",
"purl": "pkg:rpm/tuxcare/vim-enhanced?distro=almalinux-9.6",
"ecosystem": "TuxCare:AlmaLinux:9.6"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.6esu/CLSA-2026-1778008248.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2:8.2.2637-22.el9_6.1.tuxcare.els22"
}
]
}
],
"package": {
"name": "vim-filesystem",
"purl": "pkg:rpm/tuxcare/vim-filesystem?distro=almalinux-9.6",
"ecosystem": "TuxCare:AlmaLinux:9.6"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.6esu/CLSA-2026-1778008248.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "2:8.2.2637-22.el9_6.1.tuxcare.els22"
}
]
}
],
"package": {
"name": "vim-minimal",
"purl": "pkg:rpm/tuxcare/vim-minimal?distro=almalinux-9.6",
"ecosystem": "TuxCare:AlmaLinux:9.6"
},
"database_specific": {
"source": "https://github.com/cloudlinux/tuxcare-osv/tree/main/data/els_os/almalinux9.6esu/CLSA-2026-1778008248.json"
}
}
],
"modified": "2026-10-21T10:46:38.608156326Z",
"provider": "osv",
"upstream": [
"CVE-2021-3974",
"CVE-2022-2125",
"CVE-2022-2206",
"CVE-2022-2286",
"CVE-2022-2946"
],
"references": [
"https://errata.tuxcare.com/els_os/tuxcare9.6esu/CLSA-2026-1778008248.html"
]
},
"related_cves": [
{
"value": "CVE-2021-3974",
"evidence": "/upstream"
},
{
"value": "CVE-2022-2125",
"evidence": "/upstream"
},
{
"value": "CVE-2022-2206",
"evidence": "/upstream"
},
{
"value": "CVE-2022-2286",
"evidence": "/upstream"
},
{
"value": "CVE-2022-2946",
"evidence": "/upstream"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 392255,
"published_at": "2026-05-05T19:47:14+00:00"
}