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.
{ "cwe_ids": [ "CWE-416" ] }
[ { "source": "https://github.com/vim/vim/commit/c0f0e2380e5954f4a52a131bf6b8499838ad1dae", "target": { "file": "src/register.c" }, "signature_version": "v1", "deprecated": false, "digest": { "line_hashes": [ "2914180065361291748667840056452573159", "272603678876125270797702967527619825025", "7094656367675424948863862086483138133", "113739267163280580096868967131872147064" ], "threshold": 0.9 }, "signature_type": "Line", "id": "CVE-2025-26603-1501013f" }, { "source": "https://github.com/vim/vim/commit/c0f0e2380e5954f4a52a131bf6b8499838ad1dae", "target": { "function": "ex_display", "file": "src/register.c" }, "signature_version": "v1", "deprecated": false, "digest": { "function_hash": "91414584533117410737956820078353910565", "length": 3001.0 }, "signature_type": "Function", "id": "CVE-2025-26603-a3193857" }, { "source": "https://github.com/vim/vim/commit/c0f0e2380e5954f4a52a131bf6b8499838ad1dae", "target": { "file": "src/version.c" }, "signature_version": "v1", "deprecated": false, "digest": { "line_hashes": [ "146200493773228420153804765641940418619", "277754501638210839596090910220208759008", "214331747468191585958802304022648654800", "256973908508596794758510581738161957870" ], "threshold": 0.9 }, "signature_type": "Line", "id": "CVE-2025-26603-dd35efe3" } ]