Skip to main content

Neovim CVE-2026-11487

| EUVDEUVD-2026-35018 LOW
Command Injection (CWE-77)
2026-06-08 VulDB GHSA-6869-x4fx-m53f
1.9
CVSS 4.0 · Vendor: VulDB

Severity by source

Vendor (VulDB) PRIMARY
1.9 LOW
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Primary rating from Vendor (VulDB) · only source for this CVE.

CVSS VectorVendor: VulDB

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

4
Severity Changed
Jun 08, 2026 - 05:22 NVD
MEDIUM LOW
CVSS changed
Jun 08, 2026 - 05:22 NVD
5.3 (MEDIUM) 1.9 (LOW)
Source Code Evidence Fetched
Jun 08, 2026 - 05:18 vuln.today
Analysis Generated
Jun 08, 2026 - 05:18 vuln.today

DescriptionCVE.org

A flaw has been found in Neovim up to 0.12.2. Affected by this issue is the function M.read of the file runtime/lua/vim/secure.lua of the component View Branch. Executing a manipulation of the argument path can lead to command injection. It is possible to launch the attack on the local host. The exploit has been published and may be used. This patch is called f83e0dcaf8cf18de94828341b0a1a61a86c75baf. A patch should be applied to remediate this issue.

AnalysisAI

Command injection in Neovim up to version 0.12.2 allows a local attacker with low privileges to execute arbitrary Vim commands by crafting a file with a malicious name containing pipe (|) or other Vim Ex command separators. The vulnerable code path is the M.read function in runtime/lua/vim/secure.lua, which concatenates an unsanitized file path directly into a vim.cmd('sview ...') call when a user selects the 'View' action in Neovim's security trust prompt. This CVE is not listed in CISA KEV, indicating no confirmed widespread active exploitation; however, a publicly available proof-of-concept exploit exists (GitHub issue #39914) and an official patch has been released (commit f83e0dcaf8cf18de94828341b0a1a61a86c75baf via PR #39918).

Technical ContextAI

The vulnerability resides in runtime/lua/vim/secure.lua within the M.read function, which is the backend for Neovim's trust-sandbox mechanism - the system that prompts users to allow, deny, or view potentially executable config files such as .nvimrc and .exrc. When the user selects 'View', the pre-patch code constructed a Vim Ex command by direct string concatenation: vim.cmd('sview ' .. fullpath). Because fullpath was not passed through vim.fn.fnameescape(), any filename containing Vim command metacharacters - most critically the pipe |, which is the Vim Ex command separator - would cause the editor to parse and execute the injected token as a second Ex command. The fix replaces the concatenation with vim.cmd(('sview %s'):format(vim.fn.fnameescape(fullpath))), applying proper escaping before command construction. CWE-77 (Improper Neutralization of Special Elements Used in a Command) precisely describes this root cause: externally-controlled input incorporated into a command string without neutralizing command-separator metacharacters. The CPE cpe:2.3:a:n/a:neovim:*:*:*:*:*:*:*:* covers the affected product range.

RemediationAI

The primary remediation is to apply the upstream patch, which is available as commit f83e0dcaf8cf18de94828341b0a1a61a86c75baf merged via PR #39918 (https://github.com/neovim/neovim/pull/39918). The patch replaces unsafe string concatenation with vim.fn.fnameescape() in the 'View' branch of M.read. Upstream fix availability is confirmed via the merged PR and commit; however, a specific tagged release version incorporating this fix was not independently confirmed from the provided data - users should verify their installed Neovim build includes this commit hash or upgrade to any release published after the commit date. As a compensating control before patching, users should avoid selecting the 'View' option when vim.secure.read() prompts them about files in untrusted or shared directories, opting for 'Deny' instead; the trade-off is losing the safe-preview workflow. Setting set noexrc in the global Neovim config disables automatic loading of project-local config files, reducing exposure to the code path that invokes vim.secure.read(), at the cost of disabling legitimate project-local configuration. Restricting Neovim use to trusted directories via wrapper scripts or filesystem permissions also limits attacker ability to plant malicious filenames.

More in N A

View all
CVE-2024-51092 CRITICAL POC
9.1 May 08

LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr

CVE-2025-15684 MEDIUM POC
5.5 Aug 12

Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han

CVE-2024-45257 HIGH POC
7.3 May 08

A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi

CVE-2025-15687 LOW POC
2.1 Aug 12

Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc

CVE-2025-15686 LOW POC
2.1 Aug 12

Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula

CVE-2025-67888 HIGH POC
7.3 May 08

Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root

CVE-2024-53326 HIGH POC
7.3 May 08

LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(

CVE-2026-38360 CRITICAL POC
9.8 May 08

Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti

CVE-2026-30623 CRITICAL POC
9.8 Jul 15

Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr

CVE-2026-67917 CRITICAL POC
9.8 Aug 17

SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg

CVE-2026-75337 CRITICAL POC
9.8 Aug 27

Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ

CVE-2026-31072 CRITICAL POC
9.8 May 19

Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali

Share

CVE-2026-11487 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy