CVE-2023-2610
High · 7.8CVSS
7.8
EPSS
0.5%
Published
May 9, 2023
CISA due date
—
Cloudanix analysis
A problem in the popular Vim text editor could let attackers take over a computer if someone opens a specially made file with it.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow or wraparound in Vim's input processing leads to memory corruption, enabling potential arbitrary code execution on the local system.
Why it matters to the business
Development teams and organizations using Vim for code editing face elevated risk of workstation compromise, which can result in unauthorized access to source code, intellectual property theft, or deployment of persistent malware across engineering environments.
How an attack unfolds
An attacker crafts a specially formatted file that triggers the integer wraparound during Vim's parsing routines. When a user opens the file in an affected version, the overflow corrupts memory structures, allowing the attacker to hijack control flow and execute arbitrary code without requiring elevated privileges beyond normal file access.
How to fix it
Upgrade all Vim installations to a version containing commit ab9a2d884b3a4abe319606ea95a5a6d6b01cd73a (equivalent to 9.0.1532 or newer). Rebuild from source or obtain updated packages from distribution maintainers if binary releases lag.
How to confirm the fix worked
Confirm Vim reports version 9.0.1532 or later via 'vim --version'; attempt to open known trigger files in a test environment and verify absence of crashes or unexpected behavior; review build logs for the referenced commit hash.
Typical attack path
- Create malicious file exploiting integer overflow in Vim parsing
- Deliver file to victim via email, web download, or shared repository
- Victim opens file using vulnerable Vim instance
- Integer wraparound causes memory corruption
- Attacker payload executes arbitrary code on the system
How to detect it
Review system and application logs for Vim segmentation faults or abnormal memory usage when processing files; correlate with file access timestamps on developer machines; inspect for unexpected child processes spawned from Vim.
What your security team should do
- Prioritize immediate upgrade of Vim across all developer workstations and CI systems
- Restrict execution of untrusted files in Vim until patches are applied
- Enable application whitelisting or sandboxing for text editors handling external content
- Monitor vulnerability disclosure feeds for Vim-related updates given high exploit maturity
The record
Integer Overflow or Wraparound in GitHub repository vim/vim prior to 9.0.1532.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | vim | 0 | 2:8.1.0875-5+deb10u5 |
| Debian:11 | vim | 0 | No fix |
| Debian:11 | vim | 0 | 2:8.2.2434-3+deb11u2 |
| Debian:12 | vim | 0 | No fix |
| Debian:13 | vim | 0 | 2:9.0.1658-1 |
| SUSE:Enterprise Storage 7 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Enterprise Storage 7.1 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Micro 5.1 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Micro 5.2 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Micro 5.3 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Micro 5.4 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | vim | 0 | 9.0.1632-150500.20.3.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | vim | 0 | 9.0.1632-150500.20.3.1 |
| SUSE:Linux Enterprise Real Time 15 SP3 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Server 12 SP2-BCL | vim | 0 | 9.0.1572-17.18.1 |
| SUSE:Linux Enterprise Server 12 SP5 | vim | 0 | 9.0.1572-17.18.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | vim | 0 | 9.0.1572-17.18.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Manager Proxy 4.2 | vim | 0 | 9.0.1572-150000.5.46.1 |
| SUSE:Manager Server 4.2 | vim | 0 | 9.0.1572-150000.5.46.1 |
| Ubuntu:20.04:LTS | vim | 0 | 2:8.1.2269-1ubuntu5.15 |
| Ubuntu:22.04:LTS | vim | 0 | 2:8.2.3995-1ubuntu2.8 |
| Ubuntu:Pro:14.04:LTS | vim | 0 | 2:7.4.052-1ubuntu3.1+esm10 |
| Ubuntu:Pro:16.04:LTS | vim | 0 | 2:7.4.1689-3ubuntu1.5+esm18 |
| Ubuntu:Pro:18.04:LTS | vim | 0 | 2:8.0.1453-1ubuntu1.13+esm1 |
| openSUSE:Leap 15.4 | vim | 0 | 9.0.1572-150000.5.46.1 |
| openSUSE:Leap 15.5 | vim | 0 | 9.0.1632-150500.20.3.1 |
| openSUSE:Leap Micro 5.3 | vim | 0 | 9.0.1572-150000.5.46.1 |
| openSUSE:Leap Micro 5.4 | vim | 0 | 9.0.1572-150000.5.46.1 |
Related vulnerabilities
- CVE-2023-4781 Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.1873. Also affects vim
- CVE-2023-4752 Use After Free in GitHub repository vim/vim prior to 9.0.1858. Also affects vim
- CVE-2022-3324 Stack-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.0598. Also affects vim
- CVE-2022-2598 Out-of-bounds Write to API in GitHub repository vim/vim prior to 9.0.0100. Also affects vim
- CVE-2022-1720 Buffer Over-read in function grab_file_name in GitHub repository vim/vim prior to… Also affects vim
- CVE-2022-2000 Out-of-bounds Write in GitHub repository vim/vim prior to 8.2. Also affects vim
- CVE-2022-1968 Use After Free in GitHub repository vim/vim prior to 8.2. Also affects vim
- CVE-2022-1942 Heap-based Buffer Overflow in GitHub repository vim/vim prior to 8.2. Also affects vim