Vim is an open source, command line text editor. Prior to version 9.2.0565, the updatesnapshot() function in src/terminal.c copies the visible terminal screen into the scrollback buffer when a snapshot is taken. For each screen cell it walks the cell's chars[] array with no upper bound, stopping only when it encounters a NUL terminator. When a cell legitimately fills all VTERMMAXCHARSPER_CELL (6) slots — a base character plus five combining marks — the bundled libvterm returns the array without a terminating NUL, so the loop reads past the fixed six-element array and appends the out-of-bounds values to a buffer reserved for only six characters. A program whose output is rendered inside a :terminal window can trigger this with a short byte sequence and no Vim scripting, leading to a crash. This issue has been patched in version 9.2.0565.
{
"binaries": [
{
"binary_name": "vim",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-athena",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-common",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-gtk",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-gtk3",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-gui-common",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-nox",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-runtime",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "vim-tiny",
"binary_version": "2:8.2.3995-1ubuntu2.32"
},
{
"binary_name": "xxd",
"binary_version": "2:8.2.3995-1ubuntu2.32"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_name": "vim",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-athena",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-common",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-gtk3",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-gui-common",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-motif",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-nox",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-runtime",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "vim-tiny",
"binary_version": "2:9.1.0016-1ubuntu7.16"
},
{
"binary_name": "xxd",
"binary_version": "2:9.1.0016-1ubuntu7.16"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_name": "vim",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-athena",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-common",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-gtk3",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-gui-common",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-motif",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-nox",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-runtime",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "vim-tiny",
"binary_version": "2:9.1.0967-1ubuntu6.7"
},
{
"binary_name": "xxd",
"binary_version": "2:9.1.0967-1ubuntu6.7"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_name": "vim",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "vim-common",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "vim-gtk3",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "vim-gui-common",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "vim-motif",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "vim-nox",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "vim-runtime",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "vim-tiny",
"binary_version": "2:9.1.2141-1ubuntu4.5"
},
{
"binary_name": "xxd",
"binary_version": "2:9.1.2141-1ubuntu4.5"
}
],
"availability": "No subscription required"
}{
"binaries": [
{
"binary_name": "vim",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-athena",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-common",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-gnome",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-gtk",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-gtk3",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-gui-common",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-nox",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-runtime",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "vim-tiny",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
},
{
"binary_name": "xxd",
"binary_version": "2:8.0.1453-1ubuntu1.13+esm20"
}
],
"availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro"
}{
"binaries": [
{
"binary_name": "vim",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-athena",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-common",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-gtk",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-gtk3",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-gui-common",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-nox",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-runtime",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "vim-tiny",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
},
{
"binary_name": "xxd",
"binary_version": "2:8.1.2269-1ubuntu5.32+esm8"
}
],
"availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro"
}