Skip to main content

Use After Free

CVE-2025-26603

Severity Medium
Score 4.2/10

Summary

Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows redirecting screen messages using the `:redir` ex command to register variables and files. It also allows showing 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 using register 0 instead. In the fixed version, Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. This issue affects versions prior to 9.1.1115. Users are advised to upgrade. There are no known workarounds for this vulnerability.

  • HIGH
  • LOCAL
  • LOW
  • UNCHANGED
  • REQUIRED
  • LOW
  • LOW
  • LOW

CWE-416 - Use After Free

Use-after-free (UaF) vulnerability occurs when the application is using a pointer to memory that has been freed. Any attempt to read/write to a buffer after it is de-allocated allows memory corruption, sensitive information exposure, and can potentially lead to arbitrary code execution.

References

Advisory Timeline

  • Published