CVE-2023-48233
Low · 2.8CVSS
2.8
EPSS
0.8%
Published
Nov 16, 2023
CISA due date
—
Cloudanix analysis
A text editor can stop working if someone types an extremely large number into a search-and-replace command, though it requires the person using the editor to run that command.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
An overly large numeric count supplied to the :s substitute command triggers an abort with e_value_too_large because the value exceeds the range of a signed long, causing the process to terminate.
Why it matters to the business
Users editing files with crafted substitute commands may experience unexpected editor termination, interrupting editing sessions in environments where Vim is the primary editor; the issue is old, low-severity, and has no known exploitation in the wild.
How an attack unfolds
An attacker supplies a maliciously large count value after the :s command in a Vim session; because user interaction is required to execute the command, the editor aborts instead of processing the substitution.
How to fix it
Upgrade Vim to release 9.0.2108 or later, which includes commit ac63787734fda2e294e477af52b3bd601517fa78. No workarounds exist.
How to confirm the fix worked
Confirm the installed Vim binary reports version 9.0.2108 or newer; test that a :s command with a count exceeding LONG_MAX now produces the expected abort rather than undefined behavior.
Typical attack path
- Obtain or craft a document or command line that will be opened in Vim
- Trick or convince the user to execute a :s command containing an extremely large numeric count
- Vim evaluates the count, detects the overflow condition, and aborts with e_value_too_large
How to detect it
Review shell history, Vim script logs, or editor session recordings for :s commands containing numeric counts near or beyond 32-bit signed limits; no public exploit artifacts or network indicators are known.
What your security team should do
- Prioritize upgrade of all Vim installations to 9.0.2108 or newer within normal patch cycles
- Monitor upstream Vim release announcements for any follow-on fixes
- Educate users that unusually large numeric arguments to editing commands can cause abrupt termination
The record
Vim is an open source command line text editor. If the count after the :s command is larger than what fits into a (signed) long variable, abort with e_value_too_large. Impact is low, user interaction is required and a crash may not even happen in all situations. This issue has been addressed in commit `ac6378773` which has been included in release version 9.0.2108. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | vim | 0 | No fix |
| Debian:12 | vim | 0 | No fix |
| Debian:13 | vim | 0 | 2:9.0.2116-1 |
| Mageia:9 | vim | 0 | 9.0.2130-2.mga9 |
| SUSE:Enterprise Storage 7.1 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Micro 5.1 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Micro 5.2 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Micro 5.3 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Micro 5.4 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Micro 5.5 | vim | 0 | 9.1.0111-150500.20.9.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | vim | 0 | 9.1.0111-150500.20.9.1 |
| SUSE:Linux Enterprise Module for Desktop Applications 15 SP5 | vim | 0 | 9.1.0111-150500.20.9.1 |
| SUSE:Linux Enterprise Server 12 SP5 | vim | 0 | 9.1.0111-17.29.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP5 | vim | 0 | 9.1.0111-17.29.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Manager Proxy 4.3 | vim | 0 | 9.1.0111-150000.5.60.1 |
| SUSE:Manager Server 4.3 | vim | 0 | 9.1.0111-150000.5.60.1 |
| Ubuntu:20.04:LTS | vim | 0 | 2:8.1.2269-1ubuntu5.21 |
| Ubuntu:22.04:LTS | vim | 0 | 2:8.2.3995-1ubuntu2.15 |
| Ubuntu:23.10 | vim | 0 | 2:9.0.1672-1ubuntu2.2 |
| Ubuntu:Pro:14.04:LTS | vim | 0 | 2:7.4.052-1ubuntu3.1+esm15 |
| Ubuntu:Pro:16.04:LTS | vim | 0 | 2:7.4.1689-3ubuntu1.5+esm22 |
| Ubuntu:Pro:18.04:LTS | vim | 0 | 2:8.0.1453-1ubuntu1.13+esm7 |
| openSUSE:Leap 15.5 | vim | 0 | 9.1.0111-150500.20.9.1 |
| openSUSE:Leap Micro 5.3 | vim | 0 | 9.1.0111-150000.5.60.1 |
| openSUSE:Leap Micro 5.4 | vim | 0 | 9.1.0111-150000.5.60.1 |
Related vulnerabilities
- CVE-2025-29768 Vim, a text editor, is vulnerable to potential data loss with zip.vim and special crafted… Also affects vim
- CVE-2025-27423 Vim is an open source, command line text editor. Also affects vim
- CVE-2025-24014 Vim is an open source, command line text editor. Also affects vim
- CVE-2025-22134 When switching to other buffers using the :all command and visual mode still being… Also affects vim
- CVE-2024-47814 Vim is an open source, command line text editor. Also affects vim
- CVE-2024-43802 Vim is an improved version of the unix vi text editor. Also affects vim
- CVE-2024-43374 The UNIX editor Vim prior to version 9.1.0678 has a use-after-free error in argument list… Also affects vim
- CVE-2024-22667 Vim before 9.0.2142 has a stack-based buffer overflow because did_set_langmap in map.c… Also affects vim