CVE-2025-55157
Vim heap use-after-free vulnerability when processing recursive tuple data types
Vim is an open source, command line text editor. In versions from 9.1.1231 to before 9.1.1400, When processing nested tuples in Vim script, an error during evaluation can trigger a use-after-free in Vim’s internal tuple reference management. Specifically, the tuple_unref() function may access already freed memory due to improper lifetime handling, leading to memory corruption. The exploit requires direct user interaction, as the script must be explicitly executed within Vim. This issue has been patched in version 9.1.1400.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Active
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
6.9
Vim heap use-after-free vulnerability when processing recursive tuple data types
Vim is an open source, command line text editor. In versions from 9.1.1231 to before 9.1.1400, When processing nested tuples in Vim script, an error during evaluation can trigger a use-after-free in Vim’s internal tuple reference management. Specifically, the tuple_unref() function may access already freed memory due to improper lifetime handling, leading to memory corruption. The exploit requires direct user interaction, as the script must be explicitly executed within Vim. This issue has been patched in version 9.1.1400.
- Record
CVE-2025-55157- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-416
- Updated
- 2026-11-02
EUVDEUVD-2025-24191
6.9
Vim is an open source, command line text editor. In versions from 9.1.1231 to before 9.1.1400, When processing nested tuples in Vim script, an error during evaluation can trigger a use-after-free in Vim’s internal tuple reference management. Specifically, the tuple_unref() function may access already freed memory due to improper lifetime handling, leading to memory corruption. The exploit requires direct user interaction, as the script must be explicitly executed within Vim. This issue has been patched in version 9.1.1400.
- Record
EUVD-2025-24191- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
NVD
6.9
Vim is an open source, command line text editor. In versions from 9.1.1231 to before 9.1.1400, When processing nested tuples in Vim script, an error during evaluation can trigger a use-after-free in Vim’s internal tuple reference management. Specifically, the tuple_unref() function may access already freed memory due to improper lifetime handling, leading to memory corruption. The exploit requires direct user interaction, as the script must be explicitly executed within Vim. This issue has been patched in version 9.1.1400.
- Record
CVE-2025-55157- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Weakness
- CWE-416
- Updated
- 2026-11-02
OSVBELL-CVE-2025-55157
8.8
- Record
BELL-CVE-2025-55157- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSV
6.9
Vim heap use-after-free vulnerability when processing recursive tuple data types
Vim is an open source, command line text editor. In versions from 9.1.1231 to before 9.1.1400, When processing nested tuples in Vim script, an error during evaluation can trigger a use-after-free in Vim’s internal tuple reference management. Specifically, the tuple_unref() function may access already freed memory due to improper lifetime handling, leading to memory corruption. The exploit requires direct user interaction, as the script must be explicitly executed within Vim. This issue has been patched in version 9.1.1400.
- Record
CVE-2025-55157- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-416
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2025-55157
6.9
Vim is an open source, command line text editor. In versions from 9.1.1231 to before 9.1.1400, When processing nested tuples in Vim script, an error during evaluation can trigger a use-after-free in Vim’s internal tuple reference management. Specifically, the tuple_unref() function may access already freed memory due to improper lifetime handling, leading to memory corruption. The exploit requires direct user interaction, as the script must be explicitly executed within Vim. This issue has been patched in version 9.1.1400.
- Record
UBUNTU-CVE-2025-55157- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 5 moreShow less
OSVSUSE-SU-2025:03240-1 No score
Security update for vim
This update for vim fixes the following issues:
Update to version 9.1.1629.
- CVE-2025-53905: Fixed a path traversal issue in tar.vim plugin that may allow for file overwriting when opening specially crafted tar files (bsc#1246604).
- CVE-2025-53906: Fixed a path traversal issue in zip.vim plugin that may allow for file overwriting when opening specially crafted zip files (bsc#1246602).
- CVE-2025-55157: Fixed use-after-free in internal tuple reference management (bsc#1247938).
- CVE-2025-55158: Fixed double-free in internal typed value (typval_T) management (bsc#1247939).
- Record
SUSE-SU-2025:03240-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:03299-1 No score
Security update for vim
This update for vim fixes the following issues:
Updated to 9.1.1629:
- CVE-2025-53905: Fixed malicious tar archive may causing a path traversal in Vim’s tar.vim plugin (bsc#1246604)
- CVE-2025-53906: Fixed malicious zip archive may causing a path traversal in Vim’s zip (bsc#1246602)
- CVE-2025-55157: Fixed use-after-free in internal tuple reference management (bsc#1247938)
- CVE-2025-55158: Fixed double-free in internal typed value (typval_T) management (bsc#1247939)
- Record
SUSE-SU-2025:03299-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:03300-1 No score
Security update for vim
This update for vim fixes the following issues:
Updated to 9.1.1629:
- CVE-2025-53905: Fixed malicious tar archive may causing a path traversal in Vim’s tar.vim plugin (bsc#1246604)
- CVE-2025-53906: Fixed malicious zip archive may causing a path traversal in Vim’s zip (bsc#1246602)
- CVE-2025-55157: Fixed use-after-free in internal tuple reference management (bsc#1247938)
- CVE-2025-55158: Fixed double-free in internal typed value (typval_T) management (bsc#1247939)
- Record
SUSE-SU-2025:03300-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:20696-1 No score
Security update for vim
This update for vim fixes the following issues:
-
CVE-2025-53906: Fixed malicious zip archive causing path traversal (bsc#1246602)
-
CVE-2025-53905: Fixed malicious tar archive causing path traversal (bsc#1246604)
-
CVE-2025-55157: Fixed use-after-free in internal tuple reference management (bsc#1247938)
-
CVE-2025-55158: Fixed double-free in internal typed value (typval_T) management (bsc#1247939)
-
Update to 9.1.1629: 9.1.1629: Vim9: Not able to use more than 10 type arguments in a generic function 9.1.1628: fuzzy.c has a few issues 9.1.1627: fuzzy matching can be improved 9.1.1626: cindent: does not handle compound literals 9.1.1625: Autocompletion slow with include- and tag-completion 9.1.1624: Cscope not enabled on MacOS 9.1.1623: Buffer menu does not handle unicode names correctly 9.1.1622: Patch v9.1.1432 causes performance regressions 9.1.1621: flicker in popup menu during cmdline autocompletion 9.1.1620: filetype: composer.lock and symfony.lock files not recognized 9.1.1619: Incorrect E535 error message 9.1.1618: completion: incorrect selected index returned from complete_info() 9.1.1617: Vim9: some error messages can be improved 9.1.1616: xxd: possible buffer overflow with bitwise output 9.1.1615: diff format erroneously detected 9.1.1614: Vim9: possible variable type change 9.1.1613: tests: test_search leaves a few swapfiles behind 9.1.1612: Ctrl-G/Ctrl-T do not ignore the end search delimiter 9.1.1611: possible undefined behaviour in mb_decompose() 9.1.1610: completion: hang or E684 when 'tagfunc' calls complete() 9.1.1609: complete: Heap-buffer overflow with complete function 9.1.1608: No command-line completion for :unsilent {command} 9.1.1607: :apple command detected as :append 9.1.1606: filetype: a few more files are not recognized 9.1.1605: cannot specify scope for chdir() 9.1.1604: completion: incsearch highlight might be lost 9.1.1603: completion: cannot use autoloaded funcs in 'complete' F{func} 9.1.1602: filetype: requirements-*.txt files are not recognized 9.1.1601: Patch v8.1.0425 was wrong 9.1.1600: using diff anchors with hidden buffers fails silently 9.1.1599: :bnext doesn't go to unlisted help buffers 9.1.1598: filetype: waybar config file is not recognized 9.1.1597: CI reports leaks in libgtk3 library 9.1.1596: tests: Test_search_wildmenu_iminsert() depends on help file 9.1.1595: Wayland: non-portable use of select() 9.1.1594: completion: search completion throws errors 9.1.1593: Confusing error when compiling incomplete try block 9.1.1592: Vim9: crash with classes and garbage collection 9.1.1591: VMS support can be improved 9.1.1590: cannot perform autocompletion 9.1.1589: Cannot disable cscope interface using configure 9.1.1588: Vim9: cannot split dict inside command block 9.1.1587: Wayland: timeout not updated before select() 9.1.1586: Vim9: can define an enum/interface in a function 9.1.1585: Wayland: gvim still needs GVIM_ENABLE_WAYLAND 9.1.1584: using ints as boolean type 9.1.1583: gvim window lost its icons 9.1.1582: style issue in vim9type.c and vim9generics.c 9.1.1581: possible memory leak in vim9generics.c 9.1.1580: possible memory leak in vim9type.c 9.1.1579: Coverity complains about unchecked return value 9.1.1578: configure: comment still mentions autoconf 2.71 9.1.1577: Vim9: no generic support yet 9.1.1576: cannot easily trigger wildcard expansion 9.1.1575: tabpanel not drawn correctly with wrapped lines 9.1.1574: Dead code in mbyte.c 9.1.1573: Memory leak when pressing Ctrl-D in cmdline mode 9.1.1572: expanding $var does not escape whitespace for 'path' 9.1.1571: CmdlineChanged triggered to often 9.1.1570: Copilot suggested some improvements in cmdexpand.c 9.1.1569: tests: Vim9 tests can be improved 9.1.1568: need a few more default highlight groups 9.1.1567: crash when using inline diff mode 9.1.1566: self-referenced enum may not get freed 9.1.1565:…
- Record
SUSE-SU-2025:20696-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:20857-1 No score
Security update for vim
This update for vim fixes the following issues:
- CVE-2025-53906: malicious zip archive may cause a path traversal (bsc#1246602)
- CVE-2025-53905: malicious tar archive may cause a path traversal (bsc#1246604)
- CVE-2025-55157: use-after-free in internal tuple reference management (bsc#1247938)
- CVE-2025-55158: double-free in internal typed value (typval_T) management (bsc#1247939)
- Record
SUSE-SU-2025:20857-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
vimAlpaquita:stream |
9.1.1379-r0 up to 9.1.1406-r0 | 9.1.1406-r0 |
vimSUSE:Linux Enterprise Micro 5.3 |
before 9.1.1629-150000.5.78.1 | 9.1.1629-150000.5.78.1 |
vimSUSE:Linux Enterprise Micro 5.4 |
before 9.1.1629-150000.5.78.1 | 9.1.1629-150000.5.78.1 |
vimSUSE:Linux Enterprise Micro 5.1 |
before 9.1.1629-150000.5.78.1 | 9.1.1629-150000.5.78.1 |
vimSUSE:Linux Enterprise Micro 5.2 |
before 9.1.1629-150000.5.78.1 | 9.1.1629-150000.5.78.1 |
vimSUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 |
before 9.1.1629-17.51.1 | 9.1.1629-17.51.1 |
vimSUSE:Linux Enterprise Micro 5.5 |
before 9.1.1629-150500.20.33.1 | 9.1.1629-150500.20.33.1 |
vimSUSE:Linux Enterprise Module for Basesystem 15 SP6 |
before 9.1.1629-150500.20.33.1 | 9.1.1629-150500.20.33.1 |
vimSUSE:Linux Enterprise Module for Basesystem 15 SP7 |
before 9.1.1629-150500.20.33.1 | 9.1.1629-150500.20.33.1 |
vimSUSE:Linux Enterprise Module for Desktop Applications 15 SP6 |
before 9.1.1629-150500.20.33.1 | 9.1.1629-150500.20.33.1 |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
vimSUSE:Linux Enterprise Module for Desktop Applications 15 SP7 |
before 9.1.1629-150500.20.33.1 | 9.1.1629-150500.20.33.1 |
vimopenSUSE:Leap 15.6 |
before 9.1.1629-150500.20.33.1 | 9.1.1629-150500.20.33.1 |
vimSUSE:Linux Micro 6.0 |
before 9.1.1629-1.1 | 9.1.1629-1.1 |
vimSUSE:Linux Micro 6.1 |
before 9.1.1629-slfo.1.1_1.1 | 9.1.1629-slfo.1.1_1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-55157 is a medium vulnerability (CVSS 6.9) in Vim, published August 11, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.39%, the 33rd percentile. Fixed in vim 9.1.1406-r0.
References
github.com/vim/vim/security/advisories/GHSA-3r4f-mm4w-wgg6
github.com/vim/vim/commit/1307743697bbc46e1518abfea7f89caa95bcaf97
github.com/vim/vim/releases/tag/v9.1.1400
docs.bell-sw.com/security/cves/CVE-2025-55157
github.com/CVEProject/cvelistV5/tree/main/cves/2025/55xxx/CVE-2025-55157.json
nvd.nist.gov/vuln/detail/CVE-2025-55157
Show 15 moreShow less
suse.com/support/update/announcement/2025/suse-su-202503240-1
bugzilla.suse.com/1246602
bugzilla.suse.com/1246604
bugzilla.suse.com/1247938
bugzilla.suse.com/1247939
suse.com/security/cve/CVE-2025-53905
suse.com/security/cve/CVE-2025-53906
suse.com/security/cve/CVE-2025-55157
suse.com/security/cve/CVE-2025-55158
suse.com/support/update/announcement/2025/suse-su-202503299-1
suse.com/support/update/announcement/2025/suse-su-202503300-1
suse.com/support/update/announcement/2025/suse-su-202520696-1
suse.com/support/update/announcement/2025/suse-su-202520857-1
ubuntu.com/security/CVE-2025-55157
cve.org/CVERecord?id=CVE-2025-55157
Left out here: the rest of 1 source description. The JSON record has them.