CVE-2026-52859
CVE-2026-52859 is a high-severity vulnerability in Vim with a CVSS 3.x base score of 8.2. It is not currently listed as actively exploited by CISA, and its EPSS exploit-prediction score is low. The underlying weakness is classified as CWE-125.
Key facts
- Severity: High (CVSS 3.x base score 8.2)
- CVSS v4: 6.9
- EPSS exploit prediction: 0% (22nd percentile)
- Actively exploited: Not listed in CISA KEV
- EU (EUVD) id: EUVD-2026-36283
- Weakness: CWE-125
- Affected product: Vim
- Published:
- Last modified:
Description
Vim is an open source, command line text editor. Prior to version 9.2.0565, the update_snapshot() function in src/terminal.c copies the visible terminal screen into the scrollback buffer when a snapshot is taken. For each screen cell it walks the cell's chars[] array with no upper bound, stopping only when it encounters a NUL terminator. When a cell legitimately fills all VTERM_MAX_CHARS_PER_CELL (6) slots — a base character plus five combining marks — the bundled libvterm returns the array without a terminating NUL, so the loop reads past the fixed six-element array and appends the out-of-bounds values to a buffer reserved for only six characters. A program whose output is rendered inside a :terminal window can trigger this with a short byte sequence and no Vim scripting, leading to a crash. This issue has been patched in version 9.2.0565.
Frequently asked questions
- What is CVE-2026-52859?
- Vim is an open source, command line text editor. Prior to version 9.2.0565, the update_snapshot() function in src/terminal.c copies the visible terminal screen into the scrollback buffer when a snapshot is taken. For each screen cell it walks the cell's chars[] array with no upper bound, stopping only when it encounters a NUL terminator. When a cell legitimately fills all VTERM_MAX_CHARS_PER_CELL (6) slots — a base character plus five combining marks — the bundled libvterm returns the array without a terminating NUL, so the loop reads past the fixed six-element array and appends the out-of-bounds values to a buffer reserved for only six characters. A program whose output is rendered inside a :terminal window can trigger this with a short byte sequence and no Vim scripting, leading to a crash. This issue has been patched in version 9.2.0565.
- How severe is CVE-2026-52859?
- CVE-2026-52859 has a CVSS 3.x base score of 8.2, rated high severity. It is exploitable over network with low attack complexity, requires no privileges and no user interaction. Impact on confidentiality is low, integrity none, and availability high.
- Is CVE-2026-52859 being actively exploited?
- It is not currently listed in CISA's KEV catalog. Its EPSS exploit-prediction score is 0% (22nd percentile), an estimate of the probability of exploitation in the next 30 days.
- What products are affected by CVE-2026-52859?
- CVE-2026-52859 affects Vim. See the affected-products list for the exact vulnerable versions.
- How do I fix CVE-2026-52859?
- Review the linked vendor and NVD advisories for patched versions and mitigations, then upgrade or apply the recommended workaround. Given its high severity, prioritise patching exposed systems.
- Does CVE-2026-52859 have an EU (EUVD) identifier?
- Yes. CVE-2026-52859 is tracked in the ENISA EU Vulnerability Database (EUVD) as EUVD-2026-36283.
- When was CVE-2026-52859 published?
- CVE-2026-52859 was published on 2026-06-11 and last updated on 2026-06-17.
References
- https://github.com/vim/vim/commit/63680c6d3d52477817b49cd1a66e7aabe8a7aa19
- https://github.com/vim/vim/releases/tag/v9.2.0565
- https://github.com/vim/vim/security/advisories/GHSA-47gw-8gc3-mgcm
Affected products (1)
- cpe:2.3:a:vim:vim:*:*:*:*:*:*:*:*
More vulnerabilities in Vim
- CVE-2020-20703 — Critical (CVSS 9.8): Buffer Overflow vulnerability in VIM v.8.1.2135 allows a remote attacker to execute arbitrary code via the operand…
- CVE-2022-3520 — Critical (CVSS 9.8): Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.0765.
- CVE-2022-0318 — Critical (CVSS 9.8): Heap-based Buffer Overflow in vim/vim prior to 8.2.
- CVE-2017-6350 — Critical (CVSS 9.8): An integer overflow at an unserialize_uep memory allocation site would occur for vim before patch 8.0.0378, if it does…
- CVE-2017-6349 — Critical (CVSS 9.8): An integer overflow at a u_read_undo memory allocation site would occur for vim before patch 8.0.0377, if it does not…
- CVE-2017-5953 — Critical (CVSS 9.8): vim before patch 8.0.0322 does not properly validate values for tree length when handling a spell file, which may…
Other CWE-125 (Out-of-bounds Read) vulnerabilities
- CVE-2026-24826 — Critical (CVSS 10.0): Out-of-bounds Write, Divide By Zero, NULL Pointer Dereference, Use of Uninitialized Resource, Out-of-bounds Read,…
- CVE-2024-22004 — Critical (CVSS 10.0): Due to length check, an attacker with privilege access on a Linux Nonsecure operating system can trigger a…
- CVE-2021-41556 — Critical (CVSS 10.0): sqclass.cpp in Squirrel through 2.2.5 and 3.x through 3.1 allows an out-of-bounds read (in the core interpreter) that…
- CVE-2021-21777 — Critical (CVSS 10.0): An information disclosure vulnerability exists in the Ethernet/IP UDP handler functionality of EIP Stack Group OpENer…
- CVE-2017-14451 — Critical (CVSS 10.0): An exploitable out-of-bounds read vulnerability exists in libevm (Ethereum Virtual Machine) of CPP-Ethereum. A…
- CVE-2013-0767 — Critical (CVSS 10.0): The nsSVGPathElement::GetPathLengthScale function in Mozilla Firefox before 18.0, Firefox ESR 10.x before 10.0.12 and…