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.
Loading...
Loading...
Score 8.6 from GitHub Security Advisory (severity: HIGH) published 2022-05-24. NVD baseline CVSS 8.6; sources differ by 0.0.
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.
June 5, 2019
November 11, 2025
Every vendor that published an advisory referencing this CVE — pulled from our cve_vendor_advisories aggregation. Click any row for the vendor's original advisory page.
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.
RHSA-2019:1619 — Important
RHSA-2019:1774 — Important
RHSA-2019:1793 — Important
RHSA-2019:1947 — Important
Vim vulnerabilities
Neovim vulnerability
Neovim vulnerability
Working exploit code is in the public domain (2 GitHub PoCs) (1 Exploit-DB entry). Defenders should treat patch urgency accordingly — public PoCs typically lead to mass-exploitation within 24-72 hours.
Vim/Neovim Arbitrary Code Execution via Modelines (CVE-2019-12735)
Open source ↗Vim < 8.1.1365 / Neovim < 0.3.6 - Arbitrary Code Execution
Open source ↗See which npm, PyPI, Go, and Maven packages are affected by CVE-2019-12735
EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.