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.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 18.04 LTS | neovim | 0.2.2-3ubuntu0.1~esm1 | USN-4862-1 |
Red Hat
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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 |
Alpine
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2 | vim-X11 +4 | 2:8.1.1602-1.amzn2 | ALAS2-2019-1239 |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| 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.
Exploit-DB 1
- Vim < 8.1.1365 / Neovim < 0.3.6 - Arbitrary Code Execution EDB-46973 · local · Jun 4, 2019
GitHub 5 repositories
-
pcy190/ace-vim-neovim ★ 9 · Jun 6, 2019
Vim/Neovim Arbitrary Code Execution via Modelines (CVE-2019-12735)
-
oldthree3/CVE-2019-12735-VIM-NEOVIM ★ 2 · Jun 18, 2019
-
nickylimjj/cve-2019-12735 ★ 1 · May 20, 2021
Docker image that lets me study the exploitation of the VIM exploit
-
st9007a/CVE-2019-12735 ★ 0 · Jul 26, 2022
A demo for cve-2019-12735
-
datntsec/CVE-2019-12735 ★ 0 · Oct 26, 2020
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Advisories 21
- RHSA-2019:1947 Red Hat Security Advisory: vim security update Red Hat Security Advisories (RHSA) · Jun 26, 2026
- RHSA-2019:1793 Red Hat Security Advisory: vim security update Red Hat Security Advisories (RHSA) · Jun 26, 2026
- RHSA-2019:1619 Red Hat Security Advisory: vim security update Red Hat Security Advisories (RHSA) · Jun 26, 2026
- RHSA-2019:1774 Red Hat Security Advisory: vim security update Red Hat Security Advisories (RHSA) · Jun 26, 2026
- DSA-4487-1 neovim - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DSA-4467-1 vim - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DLA-1871-1 vim - security update Debian Security (DSA / DLA) · Mar 9, 2026
- USN-4862-1 neovim vulnerability Ubuntu Security Notices (USN) · Feb 10, 2026
- USN-4016-1 vim vulnerabilities Ubuntu Security Notices (USN) · Feb 10, 2026
- openSUSE-SU-2019:1759-1 Security update for neovim SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2024:11081-1 neovim-0.5.1-1.1 on GA media SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2019:1796-1 Security update for neovim SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2024:11497-1 gvim-8.2.3408-1.2 on GA media SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2019:1551-1 Security update for neovim SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2019:1561-1 Security update for vim SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2019:1457-1 Security update for vim SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2019:1456-1 Security update for vim SUSE / openSUSE Security Updates · Feb 4, 2026
- openSUSE-SU-2019:1997-1 Security update for neovim SUSE / openSUSE Security Updates · Feb 4, 2026
- SUSE-SU-2019:14078-1 Security update for vim SUSE / openSUSE Security Updates · Feb 4, 2026
- ALAS2-2019-1239 Important: vim security update (Amazon Linux 2) Amazon Linux Security Center (ALAS) · Aug 27, 2019
- ELSA-2019-1619 Important: vim security update (Oracle Linux 7) Oracle Linux Security Advisories (ELSA) · Jul 18, 2019
References
- https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md
- https://github.com/vim/vim/commit/53575521406739cf20bbe4e384d88e7dca11f040
- https://github.com/neovim/neovim/pull/10082
- https://bugs.debian.org/930020
- https://bugs.debian.org/930024
- FEDORA-2019-d79f89346c vendor-advisory
- USN-4016-1 vendor-advisory
- USN-4016-2 vendor-advisory
- 108724 vdb-entry
- FEDORA-2019-dcd49378b8 vendor-advisory
- openSUSE-SU-2019:1551 vendor-advisory
- openSUSE-SU-2019:1562 vendor-advisory
- openSUSE-SU-2019:1561 vendor-advisory
- DSA-4467 vendor-advisory
- 20190624 [SECURITY] [DSA 4467-2] vim regression update mailing-list
- https://support.f5.com/csp/article/K93144355
- RHSA-2019:1619 vendor-advisory
- RHSA-2019:1774 vendor-advisory
- RHSA-2019:1793 vendor-advisory
- openSUSE-SU-2019:1759 vendor-advisory
- openSUSE-SU-2019:1796 vendor-advisory
- DSA-4487 vendor-advisory
- 20190724 [SECURITY] [DSA 4487-1] neovim security update mailing-list
- RHSA-2019:1947 vendor-advisory
- [debian-lts-announce] 20190803 [SECURITY] [DLA 1871-1] vim security update mailing-list
- openSUSE-SU-2019:1997 vendor-advisory
- https://support.f5.com/csp/article/K93144355?utm_source=f5support&utm_medium=RSS
- GLSA-202003-04 vendor-advisory
- https://www.exploit-db.com/exploits/46973