Cyber Resilience

CVE-2026-47167

Vim ≤ 9.2.0496

Published
11 June 2026
Modified
17 June 2026
Patch / advisory
CVSS Score v4 5.1
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/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
EPSS Score 0.0014 3th percentile
Risk Priority 35 floored blend · peak EPSS

Summary

CVE-2026-47167 is a medium-severity Code Injection (CWE-94) vulnerability in Vim Vim. Its CVSS base score is 5.1 (Medium).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploitation for Client Execution (T1203); ranked at the 3th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to CM-7 (Least Functionality) and SI-2 (Flaw Remediation) — see the control section below for these in your framework.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

Vim is an open source, command line text editor. Prior to version 9.2.0496, a code injection vulnerability exists in s:stepmatch() in the cucumber filetype plugin (runtime/ftplugin/cucumber.vim) on Vim builds with +ruby support. Step-definition patterns read from .rb files under the…

more

repository's features/*/ or stories/*/ directories are embedded into a Ruby Kernel.eval argument without sufficient escaping, allowing a crafted pattern in an attacker-controlled repository to execute arbitrary Ruby (and through it arbitrary shell commands) when the user invokes a step-jump mapping ([d, ]d). This issue has been patched in version 9.2.0496.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise TechniquesAI

T1203 Exploitation for Client Execution Execution
Adversaries may exploit software vulnerabilities in client applications to execute code.
T1059.004 Unix Shell Execution
Adversaries may abuse Unix shell commands and scripts for execution.
Why these techniques?

Local client-side code injection in Vim enables arbitrary Ruby/shell execution (T1059.004) via crafted repo files (T1203).

Confidence: HIGH · MITRE ATT&CK Enterprise v19.0

CVEs Like This One

CVE-2026-39881Same product: Vim Vim
CVE-2026-59856Same product: Vim Vim
CVE-2026-41411Same product: Vim Vim
CVE-2026-52858Same product: Vim Vim
CVE-2026-33412Same product: Vim Vim
CVE-2026-57456Same product: Vim Vim
CVE-2026-52860Same product: Vim Vim
CVE-2026-55895Same product: Vim Vim
CVE-2026-34714Same product: Vim Vim
CVE-2026-57455Same product: Vim Vim

Affected Assets

vim
vim
≤ 9.2.0496

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)
  • SI-2 Flaw Remediation
  • CM-7 Least Functionality
  • AC-6 Least Privilege
Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V1.3.1
  • V1.3.2

Mitigating Controls (NIST 800-53 r5) AI

prevent

Directly requires timely patching of the vulnerable cucumber.vim eval logic, which was fixed in 9.2.0496.

prevent

Disables unnecessary +ruby support or filetype plugins that perform unsafe Kernel.eval on repository-controlled .rb files.

prevent

Limits the impact of arbitrary Ruby/shell execution by restricting the privileges of the Vim process or user account.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

PR.PS-06's SDLC practices directly target injection flaws via secure coding and testing (mostly), yet as a single broad outcome it leaves many code-generation specifics unaddressed (partial).

PR.DS-10 none match
prevents

PR.DS-10 protects runtime data confidentiality/integrity but has no bearing on neutralizing externally influenced input during code generation, so neither direction shows any preventive effect.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

detects

Security testing in development can detect eval injection vulnerabilities before deployment.

prevents

Secure development life cycle mandates input validation and safe coding practices that directly prevent eval injection.

prevents

Application security requirements include rules against dynamic code execution of untrusted input.

prevents

Secure architecture principles discourage unsafe dynamic evaluation constructs.

prevents

Banning unapproved code samples and unauthenticated web services, combined with secure-coding standards and SAST, prevents the dynamic generation or inclusion of attacker-supplied code.

none

Separation of environments limits the blast radius if eval injection occurs in non-production.

References