Vim is an open source, command line text editor. Prior to version 9.2.0495, a Vimscript code injection vulnerability exists in s:NetrwBookHistSave() in the netrw plugin (runtime/pack/dist/opt/netrw/autoload/netrw.vim) when serializing browsed directory paths to the history file ~/.vim/.netrwhist. A directory name derived from the filesystem is interpolated into a single-quoted Vimscript string literal without escaping embedded single quotes, allowing a crafted directory name to break out of the string context and execute arbitrary Vimscript, including shell commands via system() and :!, the next time the history file is sourced. This issue has been patched in version 9.2.0495.
The product constructs all or part of a command, data structure, or record using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify how it is parsed or interpreted when it is sent to a downstream component.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Vim | Vim | * | 9.2.0495 (excluding) |
| Vim | Ubuntu | esm-infra-legacy/trusty | * |
| Vim | Ubuntu | esm-infra-legacy/xenial | * |
| Vim | Ubuntu | esm-infra/bionic | * |
| Vim | Ubuntu | esm-infra/focal | * |
| Vim | Ubuntu | jammy | * |
| Vim | Ubuntu | noble | * |
| Vim | Ubuntu | questing | * |
| Vim | Ubuntu | resolute | * |
| Vim | Ubuntu | upstream | * |