Skip to content
OpenAdvisories
Unscored Public exploit CVE-2019-12735 EUVD-2019-4324GHSA-5x93-92vm-jw5m

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 …

Published Jun 5, 2019 · Updated Nov 11, 2025 · Assigned by mitre

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.

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 neovim 0.3.4-3 —
Debian 14 vim 2:8.1.0875-4 —
Debian 13 neovim 0.3.4-3 —
Debian 13 vim 2:8.1.0875-4 —
Debian 12 neovim 0.3.4-3 —
Debian 12 vim 2:8.1.0875-4 —
Debian 9 neovim 0.1.7-4+deb9u1 DSA-4487-1
Debian 9 vim 2:8.0.0197-4+deb9u2 DSA-4467-1
Debian 8 vim 2:7.4.488-7+deb8u4 DLA-1871-1
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS vim 2:8.0.1453-1ubuntu1.1 USN-4016-1
Ubuntu 16.04 LTS vim 2:7.4.1689-3ubuntu1.3 USN-4016-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 18.04 LTS neovim 0.2.2-3ubuntu0.1~esm1 USN-4862-1
ReleasePackageFixed inAdvisory
RHEL 8 vim +5 2:8.0.1763-11.el8_0 RHSA-2019:1619
RHEL 7 vim +5 2:7.4.160-6.el7_6 RHSA-2019:1619
RHEL 6 vim +5 2:7.4.629-5.el6_10.2 RHSA-2019:1774
Show 2 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 7.5 EUS vim +5 2:7.4.160-4.el7_5.1 RHSA-2019:1793
RHEL 7.4 EUS vim +5 2:7.4.160-2.el7_4.1 RHSA-2019:1947
ReleasePackageFixed inAdvisory
SLES 15 SP1 vim 8.0.1568-5.3.1 SUSE-SU-2019:1457-1
SLES 15 vim 8.0.1568-5.3.1 SUSE-SU-2019:1457-1
SLES 12 SP4 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SLES 12 SP3 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SLES 12 SP2 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
Show 12 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES 12 SP1 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SLES 12 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SLES 11 SP4 vim 7.2-8.21.3.1 SUSE-SU-2019:14078-1
SLES for SAP 12 SP4 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SLES for SAP 12 SP3 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SLES for SAP 12 SP2 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SLES for SAP 12 SP1 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SUSE Package Hub 15 SP1 neovim 0.3.7-bp151.3.3.1 openSUSE-SU-2019:1997-1
SUSE Package Hub 15 neovim 0.3.1-bp150.2.6.1 openSUSE-SU-2019:1796-1, openSUSE-SU-2019:1551-1
SUSE OpenStack Cloud 7 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
SUSE Linux Enterprise Point of Sale 11 SP3 vim 7.2-8.21.3.1 SUSE-SU-2019:14078-1
SUSE Enterprise Storage 4 vim 7.4.326-17.3.1 SUSE-SU-2019:1456-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed neovim 0.5.1-1.1 openSUSE-SU-2024:11081-1
openSUSE Tumbleweed vim 8.2.3408-1.2 openSUSE-SU-2024:11497-1
openSUSE Leap 15.1 neovim 0.3.1-bp150.2.6.1 openSUSE-SU-2019:1759-1, openSUSE-SU-2019:1551-1
openSUSE Leap 15.1 vim 8.0.1568-lp151.5.3.1 openSUSE-SU-2019:1561-1
openSUSE Leap 15.0 neovim 0.3.1-bp150.2.6.1 openSUSE-SU-2019:1759-1, openSUSE-SU-2019:1551-1
openSUSE Leap 15.0 vim 8.0.1568-lp151.5.3.1 openSUSE-SU-2019:1561-1
ReleasePackageFixed inAdvisory
Alpine v3.24 neovim 0.3.6-r0 —
Alpine v3.24 vim 8.1.1365-r0 —
Alpine v3.23 neovim 0.3.6-r0 —
Alpine v3.23 vim 8.1.1365-r0 —
Alpine v3.22 neovim 0.3.6-r0 —
Alpine v3.22 vim 8.1.1365-r0 —
Alpine v3.21 neovim 0.3.6-r0 —
Alpine v3.21 vim 8.1.1365-r0 —
Alpine v3.20 neovim 0.3.6-r0 —
Alpine v3.20 vim 8.1.1365-r0 —
Show 13 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 neovim 0.3.6-r0 —
Alpine v3.19 vim 8.1.1365-r0 —
Alpine v3.18 neovim 0.3.6-r0 —
Alpine v3.18 vim 8.1.1365-r0 —
Alpine v3.17 neovim 0.3.6-r0 —
Alpine v3.17 vim 8.1.1365-r0 —
Alpine v3.16 neovim 0.3.6-r0 —
Alpine v3.16 vim 8.1.1365-r0 —
Alpine v3.15 neovim 0.3.6-r0 —
Alpine v3.15 vim 8.1.1365-r0 —
Alpine v3.14 neovim 0.3.6-r0 —
Alpine v3.14 vim 8.1.1365-r0 —
Alpine v3.13 neovim 0.3.6-r0 —
Alpine v3.13 vim 8.1.1365-r0 —
Alpine v3.12 neovim 0.3.6-r0 —
Alpine v3.12 vim 8.1.1365-r0 —
Alpine v3.11 neovim 0.3.6-r0 —
Alpine v3.11 vim 8.1.1365-r0 —
Alpine v3.10 neovim 0.3.6-r0 —
Alpine v3.10 vim 8.1.1365-r0 —
Alpine v3.9 vim 8.1.1365-r0 —
Alpine v3.8 vim 8.1.1365 —
Alpine v3.7 vim 8.0.1359-r2 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2 vim-X11 +4 2:8.1.1602-1.amzn2 ALAS2-2019-1239

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 7 vim-X11 +4 2:8.0.1763-11.el8_0 ELSA-2019-1619

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

Exploit-DB 1

GitHub 5 repositories

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 21

References