CVE-2026-59856 Vim vulnerability
Vim is an open source, command line text editor. Prior to 9.2.0736, the PHP omni-completion script in runtime/autoload/phpcomplete.vim interpolates a class or trait name, taken from the contents of the edited buffer, into a search() pattern that is run via win_execute() without escaping. A name containing a single quote can terminate the search() string argument early, and because the bar is honored as an Ex command separator, the remainder of the name is run as Ex commands; via the :! command this allows arbitrary operating-system command execution when a victim opens a crafted PHP file and invokes omni-completion. This issue is fixed in version 9.2.0736.
Quick answer
Vim should be reviewed and updated if it matches the affected versions. The recommended fix is to apply the vendor-supported patched version or the mitigation steps below, then retest the public website with Fixnx.
Who is affected
Affected versions
- Vim before 9.2.0736
Fixed versions
- 9.2.0736
How to fix it
CVE-2026-59856 affects Vim before 9.2.0736 where PHP omni-completion can execute arbitrary Ex or shell commands from crafted class or trait names when completion is invoked. Prioritize developer workstations, build hosts, jump boxes, and environments where users open untrusted source trees, spell files, or tags files. Upgrade Vim to 9.2.0736 or a later patched package from the OS vendor or upstream. Avoid invoking PHP omni-completion in untrusted projects until patched.
- Inventory Vim installations on developer workstations, servers, containers, CI images, jump hosts, and base images.
- Identify Vim versions before 9.2.0736 and determine whether the OS vendor package backports the relevant upstream patch.
- Upgrade Vim to 9.2.0736 or a later patched package, then rebuild affected base images and development containers.
- Avoid invoking PHP omni-completion in untrusted projects until patched.
- Reduce trust in project-local tags, completion scripts, modelines, spell files, and plugin-provided runtime files for repositories from untrusted sources.
- Review shell history, editor logs, endpoint telemetry, and suspicious project files for unexpected Ex commands, shell escapes, or crashes.
- If code execution is suspected, preserve the malicious project, rotate affected credentials, and rebuild compromised developer environments.
Scan now. Google sign-in is only needed to unlock fix guidance.
Verify the fix
- Confirm vim --version or package metadata reports Vim 9.2.0736 or a vendor-patched later build.
- Confirm Vim patch level is 9.2.0736 or later and crafted PHP names are escaped before search execution.
- Confirm patched completion or spell workflows handle crafted inputs without executing commands or corrupting memory.
- Rerun OS package, container, and endpoint vulnerability scans to confirm vulnerable Vim builds are gone.
- Document patched versions, rebuilt images, user guidance, and any incident evidence.
Related categories
Trusted references
FAQ
What is affected by CVE-2026-59856?
Vim versions listed as affected should be reviewed: Vim before 9.2.0736.
What should I fix first?
Start with internet-facing sites, admin panels, login flows, plugins, themes, modules, packages, and systems that process user-controlled input or sensitive data.
How do I confirm the fix worked?
Apply the patched version or mitigation, clear caches where relevant, retest the affected workflow, and run a new Fixnx scan to verify public website exposure signals.
How are Fixnx security risk categories chosen?
Fixnx keeps one canonical risk page and assigns only broad, relevant categories such as ecosystem, technology area, or vulnerability class.
