CVE-2023-4781
High · 7.8CVSS
7.8
EPSS
0.6%
Published
Sep 5, 2023
CISA due date
—
Cloudanix analysis
A problem in the Vim text editor could let someone take over a computer if a user opens a specially made file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Application
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer overflow in Vim that can lead to arbitrary code execution when processing specially crafted input.
Why it matters to the business
Attackers could gain control of systems where developers or administrators use Vim, potentially leading to further compromise of development environments or servers; low urgency given stable low exploit probability and absence from known exploited lists.
How an attack unfolds
An attacker prepares a malicious file designed to overflow a heap buffer in Vim; the victim opens the file with a vulnerable version, triggering the overflow and allowing code execution, with public exploits available to facilitate the attack.
How to fix it
Upgrade Vim to a version containing commit f6d28fe2c95c678cc3202cc5dc825a3fcc709e93 or later; rebuild from source or use updated packages from distribution repositories.
How to confirm the fix worked
Verify the installed Vim version is at least the fixed commit level; attempt to reproduce the overflow with known test cases or check source history for the applied patch.
Typical attack path
- Create or obtain a file that triggers the heap overflow in Vim
- Deliver the file to the target user via email, download, or shared storage
- Convince the user to open the file using Vim (user interaction required)
- Exploit the overflow to execute arbitrary code on the system
How to detect it
Review system logs for Vim crashes or unexpected process behavior when editing files; examine command history and file access logs around Vim usage for suspicious inputs.
What your security team should do
- Update all Vim installations to the fixed commit immediately
- Scan development and server environments for outdated Vim binaries
- Educate users on risks of opening untrusted files with Vim
- Monitor public exploit repositories for new proof-of-concept code
The record
Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.1873.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.18 | vim | 0 | 9.0.2073-r0 |
| Alpine:v3.19 | vim | 0 | 9.0.1888-r0 |
| Alpine:v3.20 | vim | 0 | 9.0.1888-r0 |
| Alpine:v3.21 | vim | 0 | 9.0.1888-r0 |
| Alpine:v3.22 | vim | 0 | 9.0.1888-r0 |
| Debian:10 | vim | 0 | 2:8.1.0875-5+deb10u6 |
| 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.1894-1 |
| Debian:14 | vim | 0 | 2:9.0.1894-1 |
| SUSE:Enterprise Storage 7.1 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Micro 5.1 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Micro 5.2 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Micro 5.3 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Micro 5.4 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Micro 5.5 | vim | 0 | 9.0.2103-150500.20.6.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | vim | 0 | 9.0.2103-150500.20.6.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP4 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | vim | 0 | 9.0.2103-150500.20.6.1 |
| SUSE:Linux Enterprise Server 12 SP5 | vim | 0 | 9.0.1894-17.23.2 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | vim | 0 | 9.0.1894-17.23.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Manager Proxy 4.2 | vim | 0 | 9.0.1894-150000.5.54.1 |
| SUSE:Manager Server 4.2 | vim | 0 | 9.0.1894-150000.5.54.1 |
| Ubuntu:20.04:LTS | vim | 0 | 2:8.1.2269-1ubuntu5.20 |
| Ubuntu:22.04:LTS | vim | 0 | 2:8.2.3995-1ubuntu2.13 |
| Ubuntu:23.10 | vim | 0 | 2:9.0.1672-1ubuntu2.1 |
| Ubuntu:Pro:14.04:LTS | vim | 0 | 2:7.4.052-1ubuntu3.1+esm14 |
| Ubuntu:Pro:16.04:LTS | vim | 0 | 2:7.4.1689-3ubuntu1.5+esm20 |
| Ubuntu:Pro:18.04:LTS | vim | 0 | 2:8.0.1453-1ubuntu1.13+esm6 |
| openSUSE:Leap 15.4 | vim | 0 | 9.0.1894-150000.5.54.1 |
| openSUSE:Leap 15.5 | vim | 0 | 9.0.2103-150500.20.6.1 |
Related vulnerabilities
- CVE-2023-5535 Use After Free in GitHub repository vim/vim prior to v9.0.2010. Also affects vim
- CVE-2023-5344 Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.1969. Also affects vim
- CVE-2023-4752 Use After Free in GitHub repository vim/vim prior to 9.0.1858. Also affects vim
- CVE-2023-4750 Use After Free in GitHub repository vim/vim prior to 9.0.1857. Also affects vim
- CVE-2023-4733 Use After Free in GitHub repository vim/vim prior to 9.0.1840. Also affects vim
- CVE-2023-4735 Out-of-bounds Write in GitHub repository vim/vim prior to 9.0.1847. Also affects vim
- CVE-2023-4734 Integer Overflow or Wraparound in GitHub repository vim/vim prior to 9.0.1846. Also affects vim
- CVE-2021-4019 vim is vulnerable to Heap-based Buffer Overflow Also affects vim