Skip to content
OpenAdvisories
Medium · 4.2 CVE-2025-26603 EUVD-2025-5099

heap-use-after-free in function str_to_reg in vim/vim

Published Feb 18, 2025 · Updated Mar 7, 2025 · Assigned by GitHub_M

Description

Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.

Affected products

VendorProductAffectedFixed
vim vim < 9.1.1115 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 vim 2:9.1.1230-1 —
Debian 13 vim 2:9.1.1230-1 —
Debian 12 vim No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS vim 2:9.1.0016-1ubuntu7.8 USN-7419-1
Ubuntu 22.04 LTS vim 2:8.2.3995-1ubuntu2.24 USN-7419-1
Ubuntu 20.04 LTS vim 2:8.1.2269-1ubuntu5.32 USN-7419-1
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 18.04 LTS vim 2:8.0.1453-1ubuntu1.13+esm12 USN-7419-1
Ubuntu Pro 16.04 LTS vim 2:7.4.1689-3ubuntu1.5+esm27 USN-7419-1
Ubuntu Pro 14.04 LTS vim 2:7.4.052-1ubuntu3.1+esm21 USN-7419-1
ReleasePackageFixed inAdvisory
Alpine v3.24 vim 9.1.1164-r0 —
Alpine v3.23 vim 9.1.1164-r0 —
Alpine v3.22 vim 9.1.1164-r0 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 xxd +6 2:9.1.1202-1.amzn2023.0.1 ALAS2023-2025-932
Amazon Linux 2 xxd +6 2:9.0.2153-1.amzn2.0.4 ALAS2-2025-2827

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 vim 9.1.0791-4 —
Azure Linux 2 (CBL-Mariner) vim 9.1.0791-4 —

Advisories 4

References