Evil-WinRM
CVE-2026-55201
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconStand up rogue WinRM endpoint
-
DeliveryLure operator to connect
-
ExploitOperator runs download_dir
-
InstallServer returns traversal filenames
-
C2Evil-WinRM writes outside target dir
-
ExecuteOverwrite ~/.ssh/authorized_keys
-
ImpactAttacker SSHes into operator host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that (1) the victim is running Evil-WinRM 3.9 or earlier, (2) the victim invokes the download_dir() function specifically - single-file download is not affected - and (3) the remote Windows endpoint the victim has authenticated to is attacker-controlled or compromised such that the attacker can influence Get-ChildItem output. Limiting factors are significant: active user interaction (UI:A) is required, the attack is not automatable from the network alone, and the attacker must already possess a WinRM-reachable Windows host the operator chooses to connect to, which is why CVSS 4.0 marks AT:P. There is no special configuration on the client side beyond using the tool's documented directory-download feature against an untrusted server. |
| Impact | The CVSS 4.0 base of 7.4 (AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H) accurately reflects a high-impact but conditionally triggered flaw: the attacker needs to control the WinRM server the victim connects to (AT:P) and the victim must actively run download_dir() (UI:A). There is no KEV listing and no public exploit identified at time of analysis, and EPSS data was not provided, so signals point to a credible but not mass-exploited issue. Real-world risk is concentrated in offensive-security workflows where operators routinely connect Evil-WinRM to attacker-suspect or recently compromised hosts - exactly the population most likely to encounter a malicious server - so for that audience the practical risk is materially higher than the score suggests, while general enterprise exposure is low because the tool is not a server-side component. |
| Exploit ScenarioDerived | A red team operator connects Evil-WinRM to a Windows host that has been previously compromised by another actor (or is a honeypot). The operator runs 'download_dir C:\loot ./loot' to bulk-pull files; the malicious host responds to Get-ChildItem with crafted entries like '..\..\..\..\home\operator\.ssh\authorized_keys' whose contents are an attacker-controlled SSH public key, giving the attacker persistent SSH access to the operator's workstation. No public PoC is identified at this time, but the upstream patch diff explicitly shows the vulnerable sink, making weaponization straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 17, 2026
Path traversal in Evil-WinRM through 3.9 lets a malicious or compromised remote Windows server overwrite arbitrary files on the operator's client machine when the user invokes the download_dir() function. Because Evil-WinRM is the offensive operator's tool, this inverts the trust model - the 'target' Windows host becomes the attacker and the red teamer or admin running Evil-WinRM becomes the victim, with realistic outcomes including persistent SSH access via overwritten authorized_keys. No public exploit identified at time of analysis, but a public upstream patch (commit 6ecd570) discloses the exact unsanitized File.join() sink.
RemediationAI
Upstream fix available as commit 6ecd570 (PR #81 at https://github.com/Hackplayers/evil-winrm/pull/81); operators should update to a build that includes this commit - the patch sanitizes each filename via File.basename and skips empty, '.' and '..' entries before joining to the local path. Until a packaged release is consumed, operators can mitigate by avoiding the download_dir command against untrusted or potentially compromised Windows hosts (use single-file download with operator-chosen names instead), or by running Evil-WinRM inside a disposable VM or unprivileged container so that any out-of-tree write lands in a throwaway home directory rather than overwriting real ~/.ssh/authorized_keys, ~/.bashrc, or ~/.zshrc. Reviewers should consult the VulnCheck advisory at https://www.vulncheck.com/advisories/evil-winrm-path-traversal-in-download-dir-function for additional vendor guidance.
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
Evil-WinRM is a Ruby-based WinRM shell widely used by penetration testers and red teams to interact with Windows hosts. The download_dir() routine enumerates files on the remote host with PowerShell's Get-ChildItem, then passes each returned filename directly into Ruby's File.join(local_path, file.strip) to build the local write path. Ruby's File.join performs no normalization of '..' segments, so a server that returns crafted filenames such as '..\..\.ssh\authorized_keys' causes writes outside the operator-specified download directory. This is a textbook CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) with the twist that the untrusted input source is the remote shell endpoint rather than a typical web request, matching the CPE cpe:2.3:a:hackplayers:evil-winrm.
Know when Evil Winrm 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Attacker controls a network-reachable WinRM server (AV:N, PR:N), victim must run download_dir (UI:R), and overwriting authorized_keys yields high integrity and downstream confidentiality impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Evil-WinRM through 3.9, fixed in commit 6ecd570, contains a path traversal vulnerability in the download_dir() function that allows a rogue or compromised remote Windows server to write files outside the intended download directory by returning filenames with traversal sequences from Get-ChildItem command output that are passed unsanitized to File.join(). Attackers controlling the remote server can exploit this to overwrite sensitive client-side files such as SSH authorized_keys or shell configuration files, achieving persistent access or privilege escalation on the client machine.
Executive ViewAI
Evil-WinRM versions through 3.9, commonly used by offensive security teams for Windows administration and testing, contain a path traversal vulnerability allowing compromised target systems to overwrite files on the operator's machine. This inverts the trust model: operators testing against untrusted or compromised servers face the risk of backdoor installation on their own infrastructure, with realistic outcomes including SSH key manipulation for persistent access.
Apply vendor patch.
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB