Spektion Discovers Local Privilege Escalation Vulnerability in MobaXterm That Enables Arbitrary Code Execution

Team Spektion
April 2, 2026

This post is part of an ongoing series from the Spektion Research Team documenting vulnerabilities discovered through Spektion’s runtime analysis. If your security team wants to find and fix issues like these before they become public CVEs, reach out, and we’ll show you how to do it. 

Also, a big shout-out and thank you to our partners at VulnCheck for managing the disclosure process as our CNA. Read on for the full details on CVE-2026-25866.

Spektion Research has discovered a local privilege escalation vulnerability (CVE-2026-25866) in MobaXterm, a widely used terminal client for Windows. By exploiting an unquoted executable path in MobaXterm's file editor launch feature, an attacker with local filesystem access can execute arbitrary code with the privileges of the running user.

Key Takeaways

  • MobaXterm versions prior to 26.1 are vulnerable to local privilege escalation via an unquoted executable path in the file editor launch feature.
  • The vulnerability was discovered through Spektion's runtime analysis—not static scanning—because the flaw only manifests when the software executes.
  • An attacker with local filesystem access can hijack MobaXterm's process launch and execute arbitrary code with the privileges of the running user.
  • Update to MobaXterm 26.1 or later. Mobatek patched the issue promptly.

Background

MobaXterm is a widely used terminal client for Windows, designed for IT administrators, sysadmins, and developers managing remote infrastructure.

A key convenience feature in MobaXterm is its built-in file browser. When a user connects to a remote machine over SSH, a graphical file explorer panel automatically appears, allowing them to browse the remote filesystem in a Windows Explorer-style interface. 

Double-clicking a file—a configuration file, a log, or a script—triggers MobaXterm to open that file in a local text editor, by default Notepad++, or whichever editor the user has configured.

This file-open behavior is where the vulnerability lives. When MobaXterm launches the configured editor, it constructs a process creation call to open the executable. This seemingly small omission is what creates the vulnerability.

Discovery

This vulnerability was identified while using Spektion, our runtime exposure management platform, on an affected endpoint. Spektion monitors software behavior during execution by observing system calls, process creation events, and API activity in real time, rather than scanning files at rest. 

When MobaXterm launched its configured text editor, Spektion flagged the process creation call for using an unquoted executable path. Spektion's Research Team confirmed and reproduced the issue.

Root Cause Analysis

The vulnerability is caused by MobaXterm calling WinExec to launch Notepad++ without a fully qualified executable path.

On Windows, when WinExec or CreateProcess is called with an unquoted path containing spaces, Windows resolves it ambiguously—walking through each space-separated token and attempting to execute at each partial path before reaching the full intended one. An attacker who can place an executable at any of those intermediate locations will have their payload run instead of the legitimate editor, with the full security context of the MobaXterm process.

To illustrate: if the configured editor path is C:\Program Files\Notepad++\notepad++.exe and passed unquoted, Windows will try C:\Program.exe first. An attacker who drops a malicious executable at that location wins.

Microsoft's CreateProcess documentation warns developers to quote paths containing spaces.  This is a well-known pitfall, and this pattern is not unique to MobaXterm. Spektion has observed it across dozens of applications. For a broader look, see our research: Unquoted Paths: The Decades-Old Flaw Still Enabling Hidden Code Execution.

Impact

An attacker with local filesystem write access—whether via a low-privileged account on the machine, a compromised file share, or a secondary vulnerability that allows file placement—can drop a malicious executable at the appropriate path location. The next time any user on the machine opens a file in MobaXterm, the attacker's payload executes with that user's full privileges.

If the MobaXterm user is a local administrator or domain administrator, which is common, given that MobaXterm is a tool built for managing infrastructure, this results in full administrative code execution on the machine. From there, an attacker can dump credentials, establish persistent remote access, move laterally to connected systems, exfiltrate data, or take down services.

CVSS v4.0 Score: 8.5 (High) — CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

CVSS v3.1 Score: 7.8 (High)—CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

CWE: CWE-428—Unquoted Search Path or Element

Affected Versions

  • MobaXterm Professional Edition: all versions prior to 26.1
  • MobaXterm Home Edition: all versions prior to 26.1

Users can verify their current version in the MobaXterm title bar or via the Help > About menu.

Remediation

The recommended action is to update MobaXterm to version 26.1 or later, which patches the unquoted search path by quoting the executable path at the point of process creation. Downloads are available at 

https://mobaxterm.mobatek.net/download.html

If an immediate update is not possible, the following interim measures reduce exposure:

  • Audit the directories that appear in your configured editor's path (particularly drive roots and Program Files parent directories) and verify that no unexpected executables exist at those locations.
  • Restrict filesystem write permissions on shared machines so that low-privileged users cannot write to drive roots or intermediate path directories.
  • Avoid running MobaXterm as a domain administrator for routine tasks where possible.

Note that these mitigations reduce the attack surface but do not eliminate the vulnerability. Updating to 26.1 is the only complete fix.

Researcher Credit

This vulnerability was discovered by the Spektion Research Team while running Spektion and is disclosed in accordance with our coordinated vulnerability disclosure policy.

Disclosure Timeline

February 6, 2026: Spektion runtime alert flagged the unquoted path behavior. Finding confirmed and reproduced by the research team.

February 6, 2026: CVE-2026-25866 reserved by VulnCheck.

February 9, 2026: VulnCheck confirmed that Mobatek had been notified and was actively reviewing the vulnerability.

March 6, 2026: Mobatek released MobaXterm version 26.1, patching the vulnerability. Spektion Research Team is credited in the release notes.

March 9, 2026: CVE-2026-25866 was published by VulnCheck.

March 11, 2026: Public disclosure via this blog post.

Closing Thoughts

The unquoted path vulnerability class has been known for decades, appears in Microsoft's own API documentation as an explicit anti-pattern, and still shows up in production software written today. This finding is a reminder that runtime behavior—what software actually does when it runs—is a fundamentally different attack surface than what static analysis or file-based scanning can see. Keeping software updated remains the most reliable defense, and runtime visibility remains the most reliable way to find what static tools miss.