CVE-2024-41965
Vim < v9.1.0648 has a double-free in dialog_changed()
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- Low
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
4.2
Vim < v9.1.0648 has a double-free in dialog_changed()
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
CVE-2024-41965- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Weakness
- CWE-416
- Updated
- 2026-11-02
EUVDEUVD-2024-39296
4.2
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
EUVD-2024-39296- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Updated
- 2026-11-03
NVD
4.2
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
CVE-2024-41965- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Weakness
- CWE-416, CWE-415
- Updated
- 2026-11-02
OSVALPINE-CVE-2024-41965
4.2
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
ALPINE-CVE-2024-41965- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Updated
- 2026-11-03
OSVAZL-47355
4.2
CVE-2024-41965 affecting package vim for versions less than 9.0.2121-4
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
AZL-47355- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVAZL-47391
4.2
CVE-2024-41965 affecting package vim for versions less than 9.0.2190-4
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
AZL-47391- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
Show 7 moreShow less
OSVBELL-CVE-2024-41965
4.2
- Record
BELL-CVE-2024-41965- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSV
4.2
Vim < v9.1.0648 has a double-free in dialog_changed()
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
CVE-2024-41965- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Weakness
- CWE-416
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2024-41965
4.2
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.
- Record
DEBIAN-CVE-2024-41965- CVSS 3.1
- 4.2 Medium
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVOESA-2024-1982
5.3
vim security update
Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor 'Vi', with a more complete feature set. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.
Security Fix(es):
Vim is an open source command line text editor. Vim < v9.1.0647 has double free in src/alloc.c:616. When closing a window, the corresponding tagstack data will be cleared and freed. However a bit later, the quickfix list belonging to that window will also be cleared and if that quickfix list points to the same tagstack data, Vim will try to free it again, resulting in a double-free/use-after-free access exception. Impact is low since the user must intentionally execute vim with several non-default flags, but it may cause a crash of Vim. The issue has been fixed as of Vim patch v9.1.0647(CVE-2024-41957)
Vim is an open source command line text editor. double-free in dialog_changed() in Vim < v9.1.0648. When abandoning a buffer, Vim may ask the user what to do with the modified buffer. If the user wants the changed buffer to be saved, Vim may create a new Untitled file, if the buffer did not have a name yet. However, when setting the buffer name to Unnamed, Vim will falsely free a pointer twice, leading to a double-free and possibly later to a heap-use-after-free, which can lead to a crash. The issue has been fixed as of Vim patch v9.1.0648.(CVE-2024-41965)
- Record
OESA-2024-1982- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVSUSE-SU-2025:02226-1 No score
Security update for vim
This update for vim fixes the following issues:
- CVE-2024-41965: Fixed improper neutralization of argument delimiters in zip.vim that could have led to data loss (bsc#1228776).
- CVE-2025-29768: Fixed double-free in dialog_changed() (bsc#1239602).
- Record
SUSE-SU-2025:02226-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:02227-1 No score
Security update for vim
This update for vim fixes the following issues:
- CVE-2024-41965: Fixed improper neutralization of argument delimiters in zip.vim that could have led to data loss (bsc#1228776).
- CVE-2025-29768: Fixed double-free in dialog_changed() (bsc#1239602).
- Record
SUSE-SU-2025:02227-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:02228-1 No score
Security update for vim
This update for vim fixes the following issues:
- CVE-2024-41965: Fixed improper neutralization of argument delimiters in zip.vim that could have led to data loss (bsc#1228776).
- CVE-2025-29768: Fixed double-free in dialog_changed() (bsc#1239602).
- Record
SUSE-SU-2025:02228-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
vimAlpine:v3.20 |
before 9.1.0652-r0 | 9.1.0652-r0 |
vimAlpine:v3.21 |
before 9.1.0652-r0 | 9.1.0652-r0 |
vimAlpine:v3.22 |
before 9.1.0652-r0 | 9.1.0652-r0 |
vimAlpine:v3.23 |
before 9.1.0652-r0 | 9.1.0652-r0 |
vimAlpine:v3.24 |
before 9.1.0652-r0 | 9.1.0652-r0 |
vimAzure Linux:2 |
before 9.0.2121-4 | 9.0.2121-4 |
vimAzure Linux:3 |
before 9.0.2190-4 | 9.0.2190-4 |
vimAlpaquita:23 |
9.0.0820-r2 up to 9.1.0936-r0 | 9.1.0936-r0 |
vimAlpaquita:stream |
9.1.0414-r0 up to 9.1.0652-r0 | 9.1.0652-r0 |
vimDebian:12 |
All versions, plus listed versions 2:9.0.1378-22:9.0.1378-2+deb12u12:9.0.1378-2+deb12u22:9.0.1658-12:9.0.1672-1 Show 40 moreShow less2:9.0.1894-12:9.0.2018-12:9.0.2087-12:9.0.2103-12:9.0.2116-12:9.0.2189-12:9.1.0-12:9.1.0016-12:9.1.0199-12:9.1.0374-12:9.1.0377-12:9.1.0496-12:9.1.0698-12:9.1.0709-12:9.1.0709-22:9.1.0777-12:9.1.0861-12:9.1.0967-12:9.1.0967-22:9.1.1113-12:9.1.1230-12:9.1.1230-22:9.1.1385-12:9.1.1766-12:9.1.1829-12:9.1.1846-12:9.1.1882-12:9.1.2103-12:9.1.2141-12:9.2.0119-12:9.2.0136-12:9.2.0218-12:9.2.0315-12:9.2.0338-12:9.2.0355-12:9.2.0428-12:9.2.0461-12:9.2.0524-12:9.2.0782-12:9.2.0858-1 |
None known |
Show 33 moreShow less
| Package | Affected | Fixed |
|---|---|---|
vimDebian:13 |
before 2:9.1.0698-1 | 2:9.1.0698-1 |
vimDebian:14 |
before 2:9.1.0698-1 | 2:9.1.0698-1 |
vimopenEuler:22.03-LTS-SP3 From an advisory covering 2 CVEs |
before 9.0-24.oe2203sp3 | 9.0-24.oe2203sp3 |
vimopenEuler:20.03-LTS-SP4 From an advisory covering 2 CVEs |
before 9.0-23.oe2003sp4 | 9.0-23.oe2003sp4 |
vimopenEuler:22.03-LTS-SP1 From an advisory covering 2 CVEs |
before 9.0-24.oe2203sp1 | 9.0-24.oe2203sp1 |
vimopenEuler:24.03-LTS From an advisory covering 2 CVEs |
before 9.0.2092-8.oe2403 | 9.0.2092-8.oe2403 |
vimopenEuler:22.03-LTS-SP4 From an advisory covering 2 CVEs |
before 9.0-24.oe2203sp4 | 9.0-24.oe2203sp4 |
vimSUSE:Linux Enterprise Micro 5.5 From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise Module for Basesystem 15 SP6 From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise Module for Basesystem 15 SP7 From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise Module for Desktop Applications 15 SP6 From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise Module for Desktop Applications 15 SP7 From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise Server 15 SP5-LTSS From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise Server for SAP Applications 15 SP5 From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimopenSUSE:Leap 15.6 From an advisory covering 2 CVEs |
before 9.1.1406-150500.20.27.1 | 9.1.1406-150500.20.27.1 |
vimSUSE:Linux Enterprise Server 12 SP5-LTSS From an advisory covering 2 CVEs |
before 9.1.1406-17.48.1 | 9.1.1406-17.48.1 |
vimSUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 From an advisory covering 2 CVEs |
before 9.1.1406-17.48.1 | 9.1.1406-17.48.1 |
vimSUSE:Linux Enterprise Micro 5.3 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise Micro 5.4 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise Server 15 SP3-LTSS From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise Server 15 SP4-LTSS From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise Server for SAP Applications 15 SP3 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise Server for SAP Applications 15 SP4 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Manager Proxy 4.3 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Manager Server 4.3 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise Micro 5.1 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Linux Enterprise Micro 5.2 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
vimSUSE:Enterprise Storage 7.1 From an advisory covering 2 CVEs |
before 9.1.1406-150000.5.75.1 | 9.1.1406-150000.5.75.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | OSV | |
| aliases, published | EUVD | |
| first indexed | CVE List, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2024-41965 is a medium vulnerability (CVSS 4.2) in Vim, published August 1, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.33%, the 26th percentile. Fixed in vim 9.1.0652-r0.
References
github.com/vim/vim/security/advisories/GHSA-46pw-v7qw-xc2f
github.com/vim/vim/commit/b29f4abcd4b3382fa746edd1d0562b7b48c
security.netapp.com/advisory/ntap-20241115-0002
security.alpinelinux.org/vuln/CVE-2024-41965
nvd.nist.gov/vuln/detail/CVE-2024-41965
docs.bell-sw.com/security/cves/CVE-2024-41965
Show 11 moreShow less
github.com/CVEProject/cvelistV5/tree/main/cves/2024/41xxx/CVE-2024-41965.json
security-tracker.debian.org/tracker/CVE-2024-41965
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2024-1982
nvd.nist.gov/vuln/detail/CVE-2024-41957
suse.com/support/update/announcement/2025/suse-su-202502226-1
bugzilla.suse.com/1228776
bugzilla.suse.com/1239602
suse.com/security/cve/CVE-2024-41965
suse.com/security/cve/CVE-2025-29768
suse.com/support/update/announcement/2025/suse-su-202502227-1
suse.com/support/update/announcement/2025/suse-su-202502228-1