CVE-2019-12735 Command injection in n/a

High 8.6 Published Updated

Remote attackers can execute arbitrary OS commands in Vim or Neovim via malicious modelines in source files.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2019-12735?

CVE-2019-12735 is a high-severity command injection vulnerability in Vim Vim, published on 5 Jun 2019. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.

Official description

getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via the :source! command in a modeline, as demonstrated by execute in Vim, and assert_fails or nvim_input in Neovim.

Weakness: CWE-78

Which versions are affected by CVE-2019-12735?

It affects 2 products.

Linux distribution packages (40)
vim Red Hat:enterprise_linux:6::clientAll versions2:7.4.629-5.el6_10.2
vim-X11 Red Hat:enterprise_linux:6::clientAll versions2:7.4.629-5.el6_10.2
vim-common Red Hat:enterprise_linux:6::clientAll versions2:7.4.629-5.el6_10.2
vim-debuginfo Red Hat:enterprise_linux:6::clientAll versions2:7.4.629-5.el6_10.2
vim-enhanced Red Hat:enterprise_linux:6::clientAll versions2:7.4.629-5.el6_10.2
vim-filesystem Red Hat:enterprise_linux:6::clientAll versions2:7.4.629-5.el6_10.2
vim-minimal Red Hat:enterprise_linux:6::clientAll versions2:7.4.629-5.el6_10.2
vim Red Hat:enterprise_linux:6::computenodeAll versions2:7.4.629-5.el6_10.2
vim-X11 Red Hat:enterprise_linux:6::computenodeAll versions2:7.4.629-5.el6_10.2
vim-common Red Hat:enterprise_linux:6::computenodeAll versions2:7.4.629-5.el6_10.2
vim-debuginfo Red Hat:enterprise_linux:6::computenodeAll versions2:7.4.629-5.el6_10.2
vim-enhanced Red Hat:enterprise_linux:6::computenodeAll versions2:7.4.629-5.el6_10.2
vim-filesystem Red Hat:enterprise_linux:6::computenodeAll versions2:7.4.629-5.el6_10.2
vim-minimal Red Hat:enterprise_linux:6::computenodeAll versions2:7.4.629-5.el6_10.2
vim Red Hat:enterprise_linux:6::serverAll versions2:7.4.629-5.el6_10.2
vim-X11 Red Hat:enterprise_linux:6::serverAll versions2:7.4.629-5.el6_10.2
vim-common Red Hat:enterprise_linux:6::serverAll versions2:7.4.629-5.el6_10.2
vim-debuginfo Red Hat:enterprise_linux:6::serverAll versions2:7.4.629-5.el6_10.2
vim-enhanced Red Hat:enterprise_linux:6::serverAll versions2:7.4.629-5.el6_10.2
vim-filesystem Red Hat:enterprise_linux:6::serverAll versions2:7.4.629-5.el6_10.2
vim-minimal Red Hat:enterprise_linux:6::serverAll versions2:7.4.629-5.el6_10.2
vim Red Hat:enterprise_linux:6::workstationAll versions2:7.4.629-5.el6_10.2
vim-X11 Red Hat:enterprise_linux:6::workstationAll versions2:7.4.629-5.el6_10.2
vim-common Red Hat:enterprise_linux:6::workstationAll versions2:7.4.629-5.el6_10.2
vim-debuginfo Red Hat:enterprise_linux:6::workstationAll versions2:7.4.629-5.el6_10.2
vim-enhanced Red Hat:enterprise_linux:6::workstationAll versions2:7.4.629-5.el6_10.2
vim-filesystem Red Hat:enterprise_linux:6::workstationAll versions2:7.4.629-5.el6_10.2
vim-minimal Red Hat:enterprise_linux:6::workstationAll versions2:7.4.629-5.el6_10.2
vim Red Hat:enterprise_linux:7::clientAll versions2:7.4.160-6.el7_6
vim-X11 Red Hat:enterprise_linux:7::clientAll versions2:7.4.160-6.el7_6
vim-common Red Hat:enterprise_linux:7::clientAll versions2:7.4.160-6.el7_6
vim-debuginfo Red Hat:enterprise_linux:7::clientAll versions2:7.4.160-6.el7_6
vim-enhanced Red Hat:enterprise_linux:7::clientAll versions2:7.4.160-6.el7_6
vim-filesystem Red Hat:enterprise_linux:7::clientAll versions2:7.4.160-6.el7_6
vim-minimal Red Hat:enterprise_linux:7::clientAll versions2:7.4.160-6.el7_6
vim Red Hat:enterprise_linux:7::computenodeAll versions2:7.4.160-6.el7_6
vim-X11 Red Hat:enterprise_linux:7::computenodeAll versions2:7.4.160-6.el7_6
vim-common Red Hat:enterprise_linux:7::computenodeAll versions2:7.4.160-6.el7_6
vim-debuginfo Red Hat:enterprise_linux:7::computenodeAll versions2:7.4.160-6.el7_6
vim-enhanced Red Hat:enterprise_linux:7::computenodeAll versions2:7.4.160-6.el7_6

Products include Neovim Neovim, Vim Vim.

How do I fix CVE-2019-12735?

Upgrade to a fixed version.

Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.

Is CVE-2019-12735 being exploited?

There is no known exploitation of CVE-2019-12735 in the wild and no public exploit code.

Public exploit code: 1 Exploit-DB entry and 5 proofs of concept on GitHub.

All Vim Vim vulnerabilities

Sources

Also known as ALPINE-CVE-2019-12735, DEBIAN-CVE-2019-12735, DSA-4467-1, DSA-4487-1, GHSA-5x93-92vm-jw5m, MGASA-2020-0082 and 14 more.

Is CVE-2019-12735 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free