Skip to content
Fencer Vulns
low 3.6

CVE-2023-48706 json

Vim has heap-use-after-free at /src/charset.c:1770:12 in skipwhite

published 2023-11-22 2 y ago modified 2026-09-17 52 d ago also EUVD-2023-52745

cvss
3.6
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.5%
EPSS 0.5% chance of exploitation in 30 days, percentile 45%
public exploits
0
none known

Summary

Vim is a UNIX editor that, prior to version 9.0.2121, has a heap-use-after-free vulnerability. When executing a `:s` command for the very first time and using a sub-replace-special atom inside the substitution part, it is possible that the recursive `:s` call causes free-ing of memory which may later then be accessed by the initial `:s` command. The user must intentionally execute the payload and the whole process is a bit tricky to do since it seems to work only reliably for the very first :s command. It may also cause a crash of Vim. Version 9.0.2121 contains a fix for this issue.

Patch / fix

  • vim vim 9.0.2121
  • vim Debian 14, Debian 13 2:9.0.2189-1

debian advisories DEBIAN-CVE-2023-48706

  • vim Ubuntu 22.04 LTS 2:8.2.3995-1ubuntu2.15
  • vim Ubuntu 24.04 LTS 2:9.0.2116-1ubuntu2

ubuntu advisories UBUNTU-CVE-2023-48706

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • vim SLE Module for Desktop Applications 15 SP5, SLE Module for Basesystem 15 SP5, SLE Micro 5.5 +1 more 9.1.0111-150500.20.9.1
  • vim SLES for SAP 15 SP4, SLES for SAP 15 SP3, SLES for SAP 15 SP2 +16 more 9.1.0111-150000.5.60.1
  • vim SLES for SAP 12 SP5, SLES 12 SP5 9.1.0111-17.29.1

suse advisories SUSE-SU-2024:1287-1SUSE-SU-2024:0871-1SUSE-SU-2024:0783-1

  • vim Alpine 3.24, Alpine 3.23, Alpine 3.22 +3 more 9.0.2127-r0

alpine advisories ALPINE-CVE-2023-48706

Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • vim CBL-Mariner 2.0 9.0.2121-1

azure linux advisories AZL-32047

Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2023-48706 updated cvss 4.7

vim: use-after-free in ex_substitute in Vim

  • Red Hat Enterprise Linux 6 vim, vim-X11, vim-common, vim-minimal, vim-enhanced, vim-filesystem Red Hat Enterprise Linux 7 vim, vim-X11, vim-common, vim-minimal, vim-enhanced, vim-filesystem
    affected: workaround, no fix planned “Out of support scope”
  • Red Hat Enterprise Linux 8 vim, vim-X11, vim-common, vim-minimal, vim-enhanced, vim-filesystem Red Hat Enterprise Linux 9 vim, vim-X11, vim-common, vim-minimal, vim-enhanced, vim-filesystem
    affected: workaround, no fix available “Fix deferred”
  • Red Hat OpenShift AI (RHOAI) rhoai/odh-dashboard-rhel9
    under investigation

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
Proof of concept is public
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

0.54% chance of exploitation in the next 30 days, higher than 45% of all scored CVEs (FIRST EPSS, 2026-11-08).

Exploits and checks

  • github.com https://github.com/vim/vim/security/advisories/GHSA-c8qm-x72m-q53q referenced PoC, tagged "exploit" by a source, unverified
  • github.com https://github.com/gandalf4a/crash_report/blob/main/vim/vim_huaf referenced PoC, tagged "exploit" by a source, unverified

CVSS scores

assigned by version score vector
CNA 3.1 3.6 CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:L
NVD 3.1 4.7 CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:N/I:N/A:H

Affected products

  • vim vim

Classification

Weakness

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.